Python 3中re.match函数的奇怪行为
在下面的代码中,我希望程序打印“Match”,因为Python 3中re.match函数的奇怪行为,python,regex,python-3.x,Python,Regex,Python 3.x,在下面的代码中,我希望程序打印“Match”,因为“\D+\D”匹配字符串的“x4”部分。但它不打印任何内容。有什么问题 import re pattern = r"\D+\d" if re.match(pattern, "1x4"): print("Match"); 感谢您认为re.match可以匹配字符串中的任何位置的假设是错误的 如果字符串开头的零个或多个字符与此正则表达式匹配,则返回相应的MatchObject实例。如果字符串与模式不匹配,则返回None;请注意,这与零长度匹
“\D+\D”
匹配字符串的“x4”
部分。但它不打印任何内容。有什么问题
import re
pattern = r"\D+\d"
if re.match(pattern, "1x4"):
print("Match");
感谢您认为
re.match
可以匹配字符串中的任何位置的假设是错误的
如果字符串开头的零个或多个字符与此正则表达式匹配,则返回相应的MatchObject
实例。如果字符串与模式不匹配,则返回None
;请注意,这与零长度匹配不同
改为使用
re.search()
。您认为re.match
可以匹配字符串中的任何位置的假设是错误的
如果字符串开头的零个或多个字符与此正则表达式匹配,则返回相应的MatchObject
实例。如果字符串与模式不匹配,则返回None
;请注意,这与零长度匹配不同
使用
re.search()
。您想要的是re.search
,而不是re.match
。(有许多重复的问题)re.match()
匹配字符串的开头。噢!抱歉,这是一个错误。您想要的是re.search
,而不是re.match
。(有许多重复的问题)re.match()
匹配字符串的开头。噢!对不起,这是个错误。