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

如何匹配指定字符串?是否需要使用负向零宽后行断言?

正则匹配修正方案

针对你需要匹配$加数字或纯数字,但排除前面带有;或:的场景,原正则(?<!([:;]))\$?([0-9]+)存在字符类写法错误,修正后的正则如下:

(?<![;:])\$?\d+

关键说明:

  • (?<![;:]):负向零宽后行断言,确保匹配内容的前一个字符不是;或:(原写法[:;]是错误格式,会意外匹配方括号等无关字符,正确字符类应为[;:])
  • \$?:匹配可选的$符号
  • \d+:匹配一个或多个数字(等价于[0-9]+,写法更简洁)

测试验证:

  • 对字符串 This thing costs $5000 或 5000,会匹配到 $5000 或 5000
  • 对字符串 This thing costs ;$5000 或 :5000,不会匹配到任何内容(即输出None)

如果需要单独捕获数字部分,可调整为:

(?<![;:])\$?(\d+)

此时捕获组1会提取出纯数字(如5000),整体匹配结果仍为$5000或5000。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:06:29