regex在向组添加可选标记时失败

问题描述 投票:0回答:1
在以下字符串中

blah blahTESTblab la14blah-15S rebla

我正在尝试捕获
TEST
15S
如果存在。
我写了以下言论:

(TEST).*?(\d{1,2}S)?

一切都进展顺利,直到最后一个。最后一个组确实需要是可选的。
并且不能锚定小组,因为我正在搜索的字符串是人类写的,即可靠。
怎么了?

以下模式似乎可以做您想要的:

?

this说要匹配:
regex-group
1个回答
0
投票

(TEST)(?:.*?(\d{1,2}S)|)
在第一个捕获组中所需的“测试”

(TEST)
    不要捕获
  • (?:
  • 匹配任何结尾的字符串,例如在第二个捕获组中的“ 15s”
  • .*?(\d{1,2}S)
      or
    • (除了第一个“测试”之外,什么都没有匹配)
    • |
    • 结束非捕获组
    • demo
  •     
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.