我有以下Python 3代码:
import re
pattern=re.compile(r'\.')
print(pattern.match('abc.de'))
输出结果为:
None
我做错了什么?为什么正则表达式与点不匹配?
答案 0 :(得分:1)
根据match
的文档,它从字符串的开头进行检查。
如果字符串开头的零个或多个字符与此正则表达式匹配,则返回相应的MatchObject实例。如果字符串与模式不匹配,则返回None;请注意,这与零长度匹配不同。
使用search
代替搜索任何位置。
>>> import re
>>> pattern=re.compile(r'\.')
>>> print(pattern.search('abc.de'))
<_sre.SRE_Match object at 0x7fc7b5823648>
>>> print(pattern.search('abc.de').group())
.
答案 1 :(得分:0)
match
在字符串的开头查找匹配项,除非您告诉它不这样做。点不在字符串的开头,因此无法找到。