如果你知道电话号码将是/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 /'后面搜索字符串,然后取值直到达到问号。 –