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