如何捕获仅此正则表达式中的第一次出现?

时间:2018-08-14 07:35:30

标签: javascript regex

我有这个字符串:

view

此正则表达式:

2+*+2+*+3+*+3+*

问题是,它捕获了两个匹配项(2+ +2和3 + +3),我需要它仅捕获第一个匹配项。

如何更改我的正则表达式以匹配它?

这是想要尝试的人的regex101网址:

https://regex101.com/r/7G2adU/1/

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您将正则表达式更改为:

^(\d{1,3}\+\*\+\d{1,3})

然后将仅捕获第一场比赛。插入符号^是字符串开始的锚点;它与输入字符串的开头匹配,以便仅捕获其余正则表达式的第一个匹配项。

还有另一种选择。在您的示例https://regex101.com/r/7G2adU/1/中,您的正则表达式如下:

/(\d{1,3}\+\*\+\d{1,3})/ig

g是全局标志;它告诉引擎在找到第一个匹配项后不要停止,而是继续直到找不到更多匹配项为止。如果删除该标志,则仅返回第一个匹配项。