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

含后行断言的正则在Safari失效,求完全等价替代方案

兼容Safari的正则替代方案

原正则使用了Safari旧版本不支持的后行断言(?<![0-9]),我们可以通过调整正则结构,在不依赖后行断言的前提下实现完全一致的功能:

替代正则:

\b((a[a-c])(?:[^\"]*[^\d\"]2|2)(?![\d])[^\"]*)

功能说明

该正则与原正则逻辑完全一致:

  • 匹配以aa/ab/ac开头的单词边界内的字符串
  • 字符串中包含一个前后均不为数字的2
  • 整个字符串不包含双引号

关键调整点

将原正则中(?<![0-9])2的后行断言逻辑拆分为两种场景,通过|合并覆盖所有符合要求的情况:

  1. [^\"]*[^\d\"]2:匹配任意非引号字符后接一个非数字非引号字符+2
  2. 2:匹配紧跟在aa/ab/ac后的2(此时2前为字母,天然满足非数字要求)
    再通过(?![\d])确保2的后续字符不是数字,完全复刻原正则的校验逻辑。

测试验证

  • 匹配:aa4a2 → 2前后均为非数字,符合要求
  • 不匹配:aa4a22 → 2后为数字2,不符合要求
  • 匹配:aa2 → 2前为字母a,符合要求
  • 不匹配:aa42 → 2前为数字4,不符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:36:28