0
当我写的正则表达式如下:正则表达式 - 指定组,分组顺序
/(.*)/(.*)
从字符串
/aaa/bbb/ccc
我得到群体:
#1 aaa/bbb
#2 ccc
不过,我想它想如:
#1 aaa
#2 bbb/ccc
如何更改分组顺序?
当我写的正则表达式如下:正则表达式 - 指定组,分组顺序
/(.*)/(.*)
从字符串
/aaa/bbb/ccc
我得到群体:
#1 aaa/bbb
#2 ccc
不过,我想它想如:
#1 aaa
#2 bbb/ccc
如何更改分组顺序?
基本上有实现这一目标有两种方式:
/(.*?)/(.*)
.*
比赛贪婪的,所以第一个.*
第一场比赛尽可能多地(=的提醒字符串),然后回溯直到正斜杠可以匹配。延迟匹配以相反的方式工作,.*?
匹配尽可能少(=无),然后展开直到斜线可以匹配。
/([^/]*)/(.*)
正如我们所知,我们要匹配的正斜杠之前的一切,我们可以使用一个字符类,其中前斜线被否定,然后再次匹配贪婪。这是更高性能,因为您可以在一个步骤中匹配,而是通过延迟匹配来扩展您的模式。
它的工作原理,谢谢! – michalsol