如何在下列情况下使用preg_replace正确?

时间:2015-03-08 17:19:00

标签: php preg-replace

我希望有人能帮我解决一些“preg_replace”技能。

我有以下网址: http://www.domain.com/goto/test-string/

现在我只想获得URL的“测试字符串”部分。 知道怎么用preg_replace来解决这个问题吗?

先谢谢!!!

最佳, 弗洛里安

3 个答案:

答案 0 :(得分:1)

我建议使用parse_url()来获取各个部分:

http://php.net/manual/en/function.parse-url.php

然后使用explode( '/', $sUrl );根据需要获取字符串。

http://php.net/manual/en/function.explode.php

对于动态解析,您可能需要再调整一些。

答案 1 :(得分:0)

似乎preg_match()对您来说是更好的工具:

if (preg_match('/([^/]*)/$', $url, $m) {
    echo "The string you are looking for is $m[1]<br />\n";
}

但是因为你特意要求preg_replace()我想你可以这样做:

$foo = preg_replace('/^.*?/([^/]*)/$/', '$1', $url);
编辑:我忘了在正则表达式中逃避我的斜线。更容易用管道符号替换正则表达式描述符,以便斜线不再特殊。

$foo = preg_replace('|^.*?/([^/]*)/$|', '$1', $url);

答案 2 :(得分:0)

请试试这个..

$url = 'http://www.domain.com/goto/test-string/hi/';

preg_match('/.*\/(.*?)\//',$url,$match);
echo $match[1];