2014-12-23 36 views
2

我是爲青年足球(足球)俱樂部的客戶開發的網站。他們有很多不同的團隊,我在WordPress中創建了類別,例如7s Falcons(slug = under-7s-falcons)。對於站點的一部分,我需要使用類別slug鏈接到每個團隊頁面,但是這些頁面的URL格式稍有不同:/under-7s/falcons。我一直試圖用PHP的preg_replace()函數替換/under-##s-falcons位後的-,並用短劃線表示爲/under-##s/falcons。這裏是我的代碼:替換特定字符串後的短劃線

$teamPage = preg_replace("/under-[1-9]{1,2}s-/", "/", $teamPage); 

正如你可以看到,我想,以配合「下」,然後兩個數字(每個年齡段的,多達16後到來的-,但我已經把1-9這很容易)。但是,這只是將位替換爲/。我將如何更改它,以便只有-被替換爲/

感謝所有幫助:)

+0

無論是向後看還是'\ K',或者只是捕獲並重新插入'$ 1'的領先的東西。 – mario

回答

1

您可以簡單地用一個capturing group用於此目的。

$teamPage = preg_replace("/(under-[1-9]{1,2}s)-/", "$1/", $teamPage); 

或者您可以使用它來重置報道比賽和任何先前消耗的字符的起點\K轉義序列不再包括在內。

$teamPage = preg_replace("/under-[1-9]{1,2}s\K-/", "/", $teamPage); 
+2

嘿,謝謝@hwnd,這個作品完美。我會更多地捕捉組:) –