Python正则表达式换行符转义字符

时间:2016-12-21 11:01:47

标签: python regex

我对Python的正则表达式有点困惑。具体来说,为什么以下行不返回True

代码:bool(re.search(r'ab\n^c$', 'ab\nc'))

1 个答案:

答案 0 :(得分:2)

$匹配字符串的结尾,因此c必须在结尾处。但匹配的字符串以c$结尾。接下来,您还包含^,它与字符串的 start 匹配,但您将其放在表达式的中间。

转义^$以匹配文字,或使^文本中每一行的开头匹配使用re.MULTILINE flag,并从文本中删除^$以匹配。

演示:

>>> import re
>>> bool(re.search(r'ab\n\^c\$', 'ab\n^c$'))  # escaped
True
>>> # multiline and target text adjusted
...
>>> bool(re.search(r'ab\n^c$', 'ab\nc', flags=re.MULTILINE)) 
True