首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字符串格式只能在print()函数和Python中的语句中使用吗?

字符串格式只能在print()函数和Python中的语句中使用吗?
EN

Stack Overflow用户
提问于 2014-12-09 14:31:54
回答 2查看 47关注 0票数 0
代码语言:javascript
运行
复制
iterator, i is "Roster ID 2006 has been deleted"

  if re.match("Roster ID 2006 has been deleted",  i): //works

  if re.match("Roster ID %s has been deleted" % i,  i): //does not seem to work

除了打印函数和打印语句之外,我不能在其他任何地方使用字符串格式吗?

EN

回答 2

Stack Overflow用户

发布于 2014-12-09 14:50:29

可以,您可以在打印之外使用字符串格式化。您的示例不起作用,因为I是您要查找的字符串。应该是一年,例如2006年

代码语言:javascript
运行
复制
i = "Roster ID 2006 has been deleted"
print(re.match("Roster ID 2006 has been deleted",  i))
print(re.match("Roster ID %d has been deleted" % 2006,  i))

在这两种情况下,我们都会得到以下结果:

代码语言:javascript
运行
复制
<_sre.SRE_Match object; span=(0, 31), match='Roster ID 2006 has been deleted'>
<_sre.SRE_Match object; span=(0, 31), match='Roster ID 2006 has been deleted'>

但您正在执行以下操作:

代码语言:javascript
运行
复制
re.match("Roster ID %s has been deleted" % i,  i)

这与以下内容相同:

代码语言:javascript
运行
复制
re.match("Roster ID Roster ID 2006 has been deleted has been deleted",  i)
# thus you are getting None as a result of the match.
票数 1
EN

Stack Overflow用户

发布于 2014-12-09 14:51:35

可以;但如果i是字符串"2006"或转换为该字符串的内容,则执行"Roster ID %s has been deleted" % i只会产生与另一行相同的结果-即"Roster ID 2006 has been deleted"。因为您的“工作”语句是if re.match("Roster ID 2006 has been deleted", i):,所以看起来i实际上是您期望包含"Roster ID 2006 has been deleted"的某个长字符串。确保参数的顺序正确:

代码语言:javascript
运行
复制
>>> help(re.match)
Help on function match in module re:

match(pattern, string, flags=0)
    Try to apply the pattern at the start of the string, returning
    a match object, or None if no match was found.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27372762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档