Node.js中使用Regex提取测试用例ID的问题求助
提取测试用例ID的正则解决方案
你之前用的/TC-(.*)-/g之所以失效,是因为.*会贪婪匹配到第二个-就停止,而你的ID里可能包含多个-,根本覆盖不了所有场景。
正确正则表达式(两种可选)
方案1:正向预查直接匹配ID
^TC.*?(?=- [A-Z])
- 细节解释:
^TC:锁定字符串开头的TC标识.*?:非贪婪匹配任意字符,避免过度匹配到后面的内容(?=- [A-Z]):正向预查,确保后续是-(减号+空格)且空格后是大写字母(对应你示例里描述的起始格式,比如Verify的大写V)
方案2:捕获组提取ID
^(.*?)- [A-Z]
- 细节解释:
^(.*?):捕获从字符串开头到目标分隔符前的所有内容(即测试用例ID)- [A-Z]:匹配描述部分的起始标记,捕获组1就是你需要的ID
测试结果
将上述正则应用到你的测试用例名称中,会得到期望的提取结果:
TC-ABC-98.1.010_1 TC-RegPMP-1.1.001_2 TC-CS8 Customer solution-1.1.001_1 TC-USer Review-003-Scenario 1
适配调整
如果后续测试用例的描述起始格式有变化(比如没有空格直接跟-Verify),只需把正则里的- 改成-即可。
内容的提问来源于stack exchange,提问作者wanderors
相关产品推荐
相关产品推荐

