如何编写可匹配v9与v10版本的SimpleTask正则表达式?
解决方案:匹配v9和v10版本的正则表达式
你之前用".*SimpleTaskv[89]MoreDetails.*"匹配v8、v9,是利用字符类[89]匹配单个字符的数字。但v10是两位数字,字符类搞不定,得用分支选择来实现:
基础写法(带捕获组)
".*SimpleTaskv(9|10)MoreDetails.*"
这里的(9|10)表示匹配9或者10这两个分支,完美覆盖你要的v9和v10版本。
优化写法(非捕获组)
如果不需要保留匹配到的版本号(也就是不用后续引用这个分组),可以用非捕获组,性能更友好:
".*SimpleTaskv(?:9|10)MoreDetails.*"
(?:...)只负责分支匹配,不会把匹配内容存入捕获组。
测试验证
- 能匹配的字符串:
"testSimpleTaskv9MoreDetails123""SimpleTaskv10MoreDetails"
- 不会匹配的字符串:
"SimpleTaskv8MoreDetails""SimpleTaskv11MoreDetails"
内容的提问来源于stack exchange,提问作者raju
相关产品推荐
相关产品推荐

