Python 3中re.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;请注意,这与零长度匹

在下面的代码中,我希望程序打印“Match”,因为
“\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()
匹配字符串的开头。噢!对不起,这是个错误。