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

带可选符号数值匹配正则优化:解决范围误匹配及可选空格问题

正则表达式:匹配带可选正负号的数值并排除范围值

要解决这个问题,核心是区分数值的正负号和范围连接符(减号)——当减号前是数字(无论中间是否有空格)时,它是范围符,不能作为后续数字的负号。

最终正则表达式

(?:(?<!\d\s*)[+-]\s*)?\d+

正则解释

  • (?<!\d\s*):负后向断言,确保正负号[+-]的前面**不是“数字+任意数量空格”**的组合,直接排除范围符的情况。
  • [+-]\s*:匹配可选的正负号,符号与数字之间允许有任意数量空格(比如- 20这类格式也能正常匹配)。
  • ?:表示正负号部分是可选的,支持不带符号的纯数字。
  • \d+:匹配一个或多个连续数字。

测试案例验证

  • foo -20 → 匹配-20 ✔️
  • 0 - 20 → 匹配0、20 ✔️
  • foobar, 2-20 → 匹配2、20 ✔️
  • bar, 2 - 20 → 匹配2、20 ✔️
  • +20 → 匹配+20 ✔️
  • -20 → 匹配-20 ✔️
  • foo bar,-20,foo → 匹配-20 ✔️

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:20:14