如何设置特定字符匹配的数量,然后再停止?

时间:2019-04-10 23:22:31

标签: regex atom-editor

我正试图学习更多有关正则表达式的信息,并且我想了解如何选择正则表达式在停止匹配之前要查找的字符数?例如:

我有以下字符串:

>first)second)third)fourth)

如果我将正则表达式设置为

>.*\)

如果我将其设置为非贪婪的话,它将从“>”一直到最后的“)”。

>.*?\)

它将在第一个“)”处停止

但是如何使正则表达式在第二个或第三个“)”处停止?

我尝试过类似的事情

>.*\).*\)

但是它一直一直到最后,我如何选择在哪里停下来?

预先感谢您的回答)

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式分别匹配第1次,第2次,第3次和第4次,第n次出现:

^>(?:[^)]*\))
^>(?:[^)]*\)){2}
^>(?:[^)]*\)){3}
^>(?:[^)]*\)){4}
^>(?:[^)]*\))*$

演示https://regex101.com/r/ZEzYtM/2

您可以动态地构建此正则表达式以匹配第i个匹配项。