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除了打印函数和打印语句之外,我不能在其他任何地方使用字符串格式吗?
发布于 2014-12-09 14:50:29
可以,您可以在打印之外使用字符串格式化。您的示例不起作用,因为I是您要查找的字符串。应该是一年,例如2006年
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))在这两种情况下,我们都会得到以下结果:
<_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'>但您正在执行以下操作:
re.match("Roster ID %s has been deleted" % i, i)这与以下内容相同:
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.发布于 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"的某个长字符串。确保参数的顺序正确:
>>> 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.https://stackoverflow.com/questions/27372762
复制相似问题