【问题标题】:Python regexp \n issuePython 正则表达式 \n 问题
【发布时间】:2016-04-06 19:52:56
【问题描述】:

搜索成功:

>>> 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')

【问题讨论】:

    标签: python regex newline linefeed lf


    【解决方案1】:

    您需要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')
    

    【讨论】:

    • 谢谢!是 . 默认不匹配 \n
    猜你喜欢
    • 2010-10-20
    • 2014-11-29
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多