如何在Enfocus Switch中匹配连字符后的首个数字(禁用?和())
Enfocus Switch正则匹配连字符后第一个数字的替代方案
针对字符串proofs 161798-2 PDF_Review_2.1_Whats_New,要匹配连字符后的第一个数字,由于Enfocus Switch不支持(?<=-)\d{1}这类正向零宽断言语法,可采用以下两种替代方案:
方案1:精准匹配连字符+目标数字
使用普通捕获分组替代零宽断言,正则表达式为:
-(\d)
- 逻辑说明:
-直接匹配目标连字符(\d)捕获连字符后的第一个数字(\d等价于\d{1})
- 使用方式:在Enfocus Switch中调用该正则的第一个捕获组结果(通常为
$1或\1,具体参照Switch的变量语法),即可得到目标数字2。
方案2:适配多连字符场景(可选)
如果字符串可能存在多个连字符,需匹配最后一个连字符后的第一个数字,可使用:
.*-(\d)
- 逻辑说明:
.*匹配任意字符直到最后一个连字符出现(\d)捕获该连字符后的第一个数字
这两个方案均使用Enfocus Switch支持的基础正则语法,不会触发无效分组错误。
内容的提问来源于stack exchange,提问作者Courtney Atkinson
相关产品推荐
相关产品推荐

