Python' s re
module documentation说:
^
:( Caret。)匹配字符串的开头,并且在MULTILINE模式下也会在每个换行符后立即匹配。
\A
:仅匹配字符串的开头。
使用它们有什么不同吗?
答案 0 :(得分:4)
这两者都匹配:
re.search('^abc', 'abc')
re.search('\Aabc', 'abc')
这也匹配:
re.search('^abc', 'firstline\nabc', re.M)
这不是:
re.search('\Aabc', 'firstline\nabc', re.M)
答案 1 :(得分:2)
\A
是明确的字符串开始锚点。 ^
可以根据是否使用re.M
修饰符来更改其行为。
何时使用\A
以及何时使用^
?
如果要匹配字符串的开头 OR 一行,则只需匹配字符串的开头而不管任何修饰符,都使用^
,使用\A
。您可以重复使用同一个字符串模式,但使用不同的标志进行编译。
这也意味着如果您使用re.M
标志,并且想要匹配字符串开头和行开始位置,则会将\A
和^
混合在该模式中