Python 将正则表达式与多行字符串匹配

Python 将正则表达式与多行字符串匹配,python,regex,string,python-3.x,Python,Regex,String,Python 3.x,我试图将正则表达式与多行字符串进行匹配,但在第一行之后匹配失败 这些表达式按预期工作: >>> import re >>> r = re.compile("a") >>> a = "a" >>> r.match(a) <_sre.SRE_Match object; span=(0, 1), match='a'> >>> a = "a\n" >>> r.match(a) <

我试图将正则表达式与多行字符串进行匹配,但在第一行之后匹配失败

这些表达式按预期工作:

>>> import re
>>> r = re.compile("a")
>>> a = "a"
>>> r.match(a)
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>> a = "a\n"
>>> r.match(a)
<_sre.SRE_Match object; span=(0, 1), match='a'>
>>>

为什么不
匹配
工作?

match
搜索字符串开头的模式

如何纠正?

改用
搜索

>>> import re
>>> pat=re.compile('a')
>>> pat.search('\na')
<_sre.SRE_Match object at 0x7faef636d440>
>>> 
>>重新导入
>>>pat=re.compile('a')
>>>pat.search(“\na”)
>>> 

为什么
匹配不起作用?

match
搜索字符串开头的模式

如何纠正?

改用
搜索

>>> import re
>>> pat=re.compile('a')
>>> pat.search('\na')
<_sre.SRE_Match object at 0x7faef636d440>
>>> 
>>重新导入
>>>pat=re.compile('a')
>>>pat.search(“\na”)
>>> 
设计为从字符串的第一个字符(开头)开始匹配。在前两个示例中,匹配工作正常,因为
a
是第一个字符。但是,在最后一个示例中,匹配失败,因为
\n
是第一个字符

在本例中,您需要使用Python搜索
a

>>> import re
>>> r = re.compile("a")
>>> a = "\na"
>>> r.search(a)
<_sre.SRE_Match object; span=(1, 2), match='a'>
>>>
>>重新导入
>>>r=重新编译(“a”)
>>>a=“\na”
>>>r.search(a)
>>>
另外,请注意:如果使用多行字符串,则需要将dot all标志设置为具有
匹配换行符。这可以通过使用来完成。

设计为从字符串的第一个字符(开头)开始匹配。在前两个示例中,匹配工作正常,因为
a
是第一个字符。但是,在最后一个示例中,匹配失败,因为
\n
是第一个字符

在本例中,您需要使用Python搜索
a

>>> import re
>>> r = re.compile("a")
>>> a = "\na"
>>> r.search(a)
<_sre.SRE_Match object; span=(1, 2), match='a'>
>>>
>>重新导入
>>>r=重新编译(“a”)
>>>a=“\na”
>>>r.search(a)
>>>
另外,请注意:如果使用多行字符串,则需要将dot all标志设置为具有
匹配换行符。这可以通过以下方式完成