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

如何用Python正则匹配前后不含指定单词的数字?

正则匹配解决方案

给定字符串:"10.0 banana 30 apple 50 TOM 70 mango 100 peach 33 TOM 4.5",需要匹配前后未出现单词TOM的数字(即10.0、30、100),排除与TOM相邻的数字(50、70、33、4.5),可以使用以下正则表达式:

(?<!TOM\s+)\d+(?:\.\d+)?(?!\s+TOM)

正则拆解

  • (?<!TOM\s+):后行否定断言,确保当前数字的前面不是TOM加一个或多个空格,排除前面紧跟TOM的数字(比如70、4.5)
  • \d+(?:\.\d+)?:匹配整数或小数形式的数字,支持如10.0这类带小数点的格式
  • (?!\s+TOM):先行否定断言,确保当前数字的后面不是一个或多个空格加TOM,排除后面紧跟TOM的数字(比如50、33)

匹配验证

这个正则会精准命中目标数字:

  • 匹配成功:10.0、30、100
  • 匹配失败:50(后接TOM)、70(前接TOM)、33(后接TOM)、4.5(前接TOM)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:35:36