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

正则表达式匹配结果与Python re.search运行结果不一致问题

匹配结果差异原因说明

差异根源

  • 最常见的原因是regex101测试时选择的正则引擎、启用的修饰符和Python re 库默认配置不一致。比如选择PCRE引擎、开启全局匹配或者多行匹配,都会和Python原生re的执行逻辑出现偏差。
  • 你写的正则本身逻辑有缺陷:第二捕获组(\d*([-.]\d*)*)允许空匹配,也没有限制不能出现空白符。Python的re执行匹配时,这个分组只能匹配到末尾的0.3700,前面惰性匹配的.*?就会把Myteeeeext 0.366- 全部分到第一组。

修复方案

你要捕获第一个数字出现前的所有文本,完全没必要写这么复杂的正则,直接匹配所有非数字开头的内容即可:

import re

regex = r"^([^\d]*)"
message = "Myteeeeext  0.366- 0.3700"
result = re.search(regex, message)
print(result.group(1))

运行后输出就是你预期的Myteeeeext 。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:06:03