Python 正则表达式 \n 问题
Python regexp \n issue
这个搜索正常:
>>> 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')
您需要 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')
这个搜索正常:
>>> 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')
您需要 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')