如果你知道電話號碼將是/show/
後,您可以使用此正則表達式:在開始和結束
$file = $a->url;
$file = preg_replace("/.+?\\/show\\/(\\d+).*/", "$1", $file);
echo $file;
注意/
:
.+?\/show\/(\d+).*
在本的正則表達式。這些被稱爲分隔符,你需要它們。還請注意,您必須通過輸入\\
來逃避\
字符。而preg_replace()
takes a minimum of 3 parameters,不是1。
Demo
說明:
.+?
任何字符以非貪婪方式匹配
\/show\/
匹配/show/
(\d+)
匹配任何捕獲一個或多個數字
.*
任何字符
$1
(在更換)與捕獲組
替換如果你不能依靠/show/
在那裏,只是希望出現的第二個數字,正則表達式改成這樣:
https?:\/\/[^\/]+\/\D+\d+\D+\/(\d+).*
所以,你的代碼就變成了:
$file = $a->url;
$file = preg_replace("/https?:\\/\\/[^\\/]+\\/\\D+\\d+\\D+\\/(\\d+).*/", "$1", $file);
echo $file;
Demo
說明:
http
匹配`HTTP
s?
可選s
:\/\/
匹配://
[^\/]+
一個或多個非/
字符
\/
匹配/
\D+
一個或多個非數字字符
\d+
一個或多個數字(因此,第一個數字)
\D+
一個或多個非數字字符
\/
匹配/
(\d+)
匹配和捕獲一個或多個數字(第二個數字)
.*
任意字符
$1
(在替換中)替換爲捕獲的組
id是否總是在'/ show /'後面搜索字符串,然後取值直到達到問號。 –