Python中点号默认不匹配换行符,需用re.DOTALL(re.S)使其匹配;显式匹配换行符应直接使用\n、\r\n或[\r\n]+;re.MULTILINE仅影响^和$的行首行尾匹配行为。

Python 中匹配换行符,关键在于理解正则表达式默认行为和如何启用多行模式。
正则中的 . 默认只匹配除换行符(\n、\r、\r\n)以外的任意字符。所以像 re.search(r'a.b', 'a\nb') 会返回 None。
加上 re.DOTALL 标志(或简写 re.S),就能让 . 匹配包括换行符在内的所有字符:
re.search(r'a.b', 'a\nb', re.DOTALL) → 匹配成功re.findall(r'a.b', 'a\nb\nc\nd', re.S) → 可跨行匹配连续的 a?b 模式如果目标是**显式捕获换行符**,不用依赖点号,直接写转义序列即可:
立即学习“Python免费学习笔记(深入)”;
\n 匹配 Unix/Linux/macOS 换行\r\n 匹配 Windows 换行(最常见)\r|\n|\r\n 或更稳妥地用 [\r\n]+ 匹配各种换行组合re.split(r'[\r\n]+', text) 来安全切分行re.MULTILINE(re.M)只影响 ^ 和 $ 的行为,让它们分别匹配每行开头和结尾,不会让 . 匹配换行符。别混淆这两个标志。
基本上就这些 —— 看你要的是“跳过换行继续匹配”,还是“把换行符当目标提取”,选对标志或写法就行。
以上就是python如何匹配换行符的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号