2015-09-16 129 views
0

我需要提取p5925和以下網址的c98的格式化部分:正則表達式來提取和URL

http://www.example.com/mens-shoes/mens-boots/p5925/c98/colour/Black

我想要的格式爲:

p:5925c:98

的我現在得到的正則表達式是([^pc]\d+),它只匹配數字,但不知道如何以我想要的格式得到它。

我用代碼preg_match('/([^pc]\d+)/', $ls_url, $la_matches);來分割它。

+0

parse_url我不會解壓路徑的一部分。我必須反正parse_url之後的正則表達式搜索。 – Deepak

+0

謝謝,但是我怎樣才能從'p5925'獲得'5925'? – Deepak

回答

2

您需要使用preg_match_all

preg_match_all('~(?<=/)([pc])(\d+)(?=/)~', $ls_url, $la_matches); 

preg_match_all('~\b([pc])(\d+)\b~', $ls_url, $la_matches); 

DEMO

+0

謝謝,工作正常。如果我必須像數組一樣獲取/顏色/黑點,我將如何更改正則表達式? – Deepak

+1

嘗試https://regex101.com/r/lU4wM0/3 –

+0

'陣列 ( [0] =>數組 ( [0] => p5925 [1] => C98 [2] =>顏色/黑色 ) [1] =>數組 ( [0] =>點 [1] => c^ [2] => ) [2] =>數組 ( [0] => 5925 [1] => 98 [2] => ) [3] =>數組 ( [0] => [1] => [2] =>彩色/黑色 ) )' – Deepak