Python正则表达式应匹配一个点,但它不匹配

时间:2016-11-23 18:04:21

标签: python regex python-3.x

我有以下Python 3代码:

import re
pattern=re.compile(r'\.')
print(pattern.match('abc.de'))

输出结果为:

None

我做错了什么?为什么正则表达式与点不匹配?

2 个答案:

答案 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在字符串的开头查找匹配项,除非您告诉它不这样做。点不在字符串的开头,因此无法找到。

请参阅此处的文档:https://docs.python.org/3/library/re.html#re.match