Python regexp \ n问题

时间:2016-04-06 19:52:56

标签: python regex newline linefeed lf

这搜索好了:

>>> re.search(r'(.*?)\r\n(.+?)\r\n', 'aaa\r\r\nbbb\r\n').groups()
('aaa\r', 'bbb')

但当我将三个b中的一个替换为\n时,它未被搜索:

>>> re.search(r'(.*?)\r\n(.+?)\r\n', 'aaa\r\r\nb\nc\r\n').groups()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'

但我想解析第二种情况:

('aaa\r', 'b\nc')

1 个答案:

答案 0 :(得分:3)

您需要DOTALL标志:

import re
re.search(r'(.*?)\r\n(.+?)\r\n', 'aaa\r\r\nb\nc\r\n', flags=re.DOTALL).groups()

结果:

('aaa\r', 'b\nc')