在正则表达式中,您需要指定您处于多行模式:
>>> import re
>>> s = """cat
... dog"""
>>>
>>> re.match(r'cat\ndog',s,re.M)
<_sre.SRE_Match object at 0xcb7c8>
请注意,re
转换的\n
(原始字符串)转换成换行符。正如您在评论中指出的那样,实际上并不 re.M
它匹配,但是它确实有助于匹配,$
并且^
更加直观:
>> re.match(r'^cat\ndog',s).group(0)
'cat\ndog'
>>> re.match(r'^cat$\ndog',s).group(0) #doesn't match
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'nonetype' object has no attribute 'group'
>>> re.match(r'^cat$\ndog',s,re.M).group(0) #matches.
'cat\ndog'