You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则表达式中使用\r(回车符)匹配结果异常是什么原因?

核心原因

Python re 模块的默认规则中,. 元字符默认不匹配换行符,但该模块定义的「换行符」仅指代 \n,\r(回车符)不属于换行符范畴,会被.识别为普通可匹配字符。

两种场景的差异说明
  • 使用 \n 作为分隔符时:.* 无法匹配 \n,匹配逻辑会在遇到第一个 \n 时停止,刚好命中你预期的Text to find !结果。
  • 使用 \r 作为分隔符时:.* 可以正常匹配\r,加上正则默认是贪婪匹配,会尽可能匹配更长的字符串,直到命中整段文本末尾的最后一个\r,因此会把中间的\r other text也包含进匹配结果。
解决方案

如果要实现\r分隔场景下的预期匹配,最稳妥的方式是使用排除字符组替代.*,显式指定不匹配\r:

import re
text = 'Some text\rText to find !\r other text\r'
res = re.search(r'Some text\r([^\r]*)\r', text).group(1)
print(res) # 输出:Text to find !

内容的提问来源于stack exchange,提问作者LeoGlt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:45:03