Regex 函数的Python if输出
我使用以下代码查找字符串中的重复字符Regex 函数的Python if输出,regex,python-3.x,if-statement,Regex,Python 3.x,If Statement,我使用以下代码查找字符串中的重复字符 import re S=input() m = re.search(r'([A-Za-z0-9])\1+',S.strip()) if m: print(m.group(1)) else: print(-1) 我不知道为什么“if m:”对我有效,它有什么作用?它是否检查m是否存在?(我认为它应该存在),它是否检查m的值是否大于零 注:如果我的输入字符串没有重复的值,那么print(m)会给我一个错误。如果m:计算表达式m,并检查其值是
import re
S=input()
m = re.search(r'([A-Za-z0-9])\1+',S.strip())
if m:
print(m.group(1))
else:
print(-1)
我不知道为什么“if m:”对我有效,它有什么作用?它是否检查m是否存在?(我认为它应该存在),它是否检查m的值是否大于零
注:如果我的输入字符串没有重复的值,那么print(m)会给我一个错误。
如果m:
计算表达式m
,并检查其值是否为“truthy”,即如果bool(m)
为True
。如果是,则执行If
块的主体
如果名称m
不存在,则在计算表达式m
时将产生namererror
此外,如果S
没有重复的值(例如,它是空的),print(m)
不会给您错误:
>>> S = '' # empty
>>> import re
>>> m = re.search(r'([A-Za-z0-9])\1+',S.strip())
>>> print(m)
None # not an error: this just indicates that the regex didn't find anything
请注意bool(None)=False