我想捕獲給定分隔符(斜槓)之間的URL中的所有組,但似乎無法找到解決方案,因爲完全匹配總是包含分隔符。正則表達式捕獲分隔符之間的每一位
例子:
http://www.example.com/**captureme**/**capturemetoo**/**capturemeaswell**/notme.php
如果我用一個簡單的正則表達式,如#\/(.*?)\/#
我得到比賽爲「captureme」和「capturemeaswell」但我失蹤「capturemetoo」。
的困難是塊的長度捉可以改變,比如我們還可以有:
http://www.example.com/group1/group2/group3/group4/group5/page.php
如果每個組都需要被捕獲。
我寧願使用'parse_url'來獲得路徑,然後簡單地將它分解爲斜槓...... – CBroe
它是否必須是正則表達式?爲此,如果尋找一個通用的解決方案(對於這種情況,parse_url的確更好),我可以使用'parse_url($ url,PHP_URL_PATH)''explode()',也許''dirname()' –
,你可以使用lookarounds用於匹配一個組而不消耗它,在你的情況下'#\ /(。*?)(?= \ /)#'。 '?='是一個積極的向前看。請注意,爲了與正則表達式約束保持一致,您將捕獲'http://'中的前兩個斜線之間的空白作爲第一個結果,儘管 – Kaddath