返回 Bug 清单
BUG-0335project-47中已修复backend-logic
正则分支逃逸 —— 交替符 | 优先级低于预期,关键词分支独立匹配整串
发现:2026-10-01验证:2026-10-09置信度:95%
症状
交互关键词匹配行为错乱:本应『完整短语+数字』才命中的规则,仅靠关键词分支就匹配了整个字符串。
根因
| 的优先级是最低的,a|b|c\d 是三个独立分支的并集,而不是『(a 或 b 或 c) 后跟数字』。多分支组合必须显式分组。
修复方案
组合分支一律用非捕获组 (?:...) 包裹后再接公共后缀:(?:a|b|c)\d。代码评审对含 | 且含锚点/量词的正则强制检查分组边界。
检测命令
grep -rnE '\|[^?)]' --include='*.java' | grep -E 'Pattern|matches' # 人工复核分组错误签名
A|B|C\d 形态的正则中,前两个分支脱离整体锚点独立生效技术信息
来源项目
project-47
标签
regex, precedence, non-capturing-group