我有这个字符串:
view
此正则表达式:
2+*+2+*+3+*+3+*
问题是,它捕获了两个匹配项(2+ +2和3 + +3),我需要它仅捕获第一个匹配项。
如何更改我的正则表达式以匹配它?
这是想要尝试的人的regex101网址:
https://regex101.com/r/7G2adU/1/
谢谢!
答案 0 :(得分:1)
如果您将正则表达式更改为:
^(\d{1,3}\+\*\+\d{1,3})
然后将仅捕获第一场比赛。插入符号^
是字符串开始的锚点;它与输入字符串的开头匹配,以便仅捕获其余正则表达式的第一个匹配项。
还有另一种选择。在您的示例https://regex101.com/r/7G2adU/1/中,您的正则表达式如下:
/(\d{1,3}\+\*\+\d{1,3})/ig
g
是全局标志;它告诉引擎在找到第一个匹配项后不要停止,而是继续直到找不到更多匹配项为止。如果删除该标志,则仅返回第一个匹配项。