我正试图学习更多有关正则表达式的信息,并且我想了解如何选择正则表达式在停止匹配之前要查找的字符数?例如:
我有以下字符串:
>first)second)third)fourth)
如果我将正则表达式设置为
>.*\)
如果我将其设置为非贪婪的话,它将从“>”一直到最后的“)”。
>.*?\)
它将在第一个“)”处停止
但是如何使正则表达式在第二个或第三个“)”处停止?
我尝试过类似的事情
>.*\).*\)
但是它一直一直到最后,我如何选择在哪里停下来?
预先感谢您的回答)
答案 0 :(得分:0)
您可以使用以下正则表达式分别匹配第1次,第2次,第3次和第4次,第n次出现:
^>(?:[^)]*\))
^>(?:[^)]*\)){2}
^>(?:[^)]*\)){3}
^>(?:[^)]*\)){4}
^>(?:[^)]*\))*$
演示:https://regex101.com/r/ZEzYtM/2
您可以动态地构建此正则表达式以匹配第i个匹配项。