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

如何编写正则表达式实现多个指定模式的全量行匹配

正则调整方案

原正则问题分析

你编写的正则强制要求匹配!加版本号的部分,没有覆盖无版本后缀的A-Test、ATest两种场景,同时对连字符、版本号的匹配规则也不够严谨,因此无法匹配所有目标行。

目标模式规律拆解

你需要匹配的4类模式符合以下规则:

  • 开头固定为A
  • 后接可选连字符-
  • 后接固定字符串Test
  • 后接可选的版本后缀:以!开头,后跟数字.数字或数字.数字.数字格式的版本号

最终可用正则

根据使用场景不同选择对应写法即可:

场景1:提取中括号内的目标内容

正则:

\[(A-?Test(?:!\d+\.\d+(?:\.\d+)?)?)\]

规则说明:

  • 外层\[、\]匹配目标串外层的方括号
  • 捕获组1的内容就是你需要的目标串:
    • A:匹配开头固定字符A
    • -?:匹配可选的连字符,覆盖A-Test和ATest两种情况
    • Test:匹配固定的Test字符串
    • (?:!\d+\.\d+(?:\.\d+)?)?:非捕获的可选版本后缀:
      • !匹配固定感叹号
      • \d+\.\d+匹配两位版本号(如1.2)
      • (?:\.\d+)?匹配可选的第三位版本号(如.3)
      • 最外层?表示整个版本后缀可选,覆盖无后缀的场景

场景2:匹配所有包含目标串的完整行

正则(需开启多行匹配模式):

^.*\[A-?Test(?:!\d+\.\d+(?:\.\d+)?)?\].*$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:27:00