如何使用preg_replace删除部分网址?

时间:2013-08-13 10:05:47

标签: php html regex preg-replace

我有一些像这样的HTML代码:

<a href="http://mysite.com/documentos/Servicios/SUCRE/sucDoc19.pdf&amp;sa=U&amp;ei=sf0JUrmjIc3Nswb154CgDQ&amp;ved=0CCkQFjAA&amp;usg=AFQjCNGfXg_9x83U3pYr6JfkJcWuXv8X0Q">

我需要清理我的代码以获得类似的内容

<a href="http://mysite.com/documentos/Servicios/SUCRE/sucDoc19.pdf">

使用preg_replace

我的代码如下:

$serp = preg_replace('&amp;sa=(.*)" ', '" ', $serp);

它不起作用。

BTW我需要使用preg_replace限制搜索,直到FIRST入口,即我需要将所有html从&amp;sa=替换为FIRST ",但现在它从&amp;sa=搜索到最后" ...

3 个答案:

答案 0 :(得分:2)

你错过了正则表达式分隔符。

$serp = preg_replace('/&amp;sa=(.*)" /', '" ', $serp);

会给你this

答案 1 :(得分:1)

你错过了分隔符。 所以你的代码看起来像:

$serp = preg_replace('/&amp;sa=(.*)" /', '" ', $serp);

好的,如果你要删除所有内容,直到第一个引用,那么你可以尝试以下代替正则表达式:

$temp = substr($serp,strpos($serp,'&amp;sa='),strpos($serp,'"',strpos($serp,'&amp;sa=')));
$serp = str_replace($temp,"",$serp);

答案 2 :(得分:0)

只是另一个正则表达式:)

$text = '<a href="http://mysite.com/documentos/Servicios/SUCRE/sucDoc19.pdf&amp;sa=U&amp;ei=sf0JUrmjIc3Nswb154CgDQ&amp;ved=0CCkQFjAA&amp;usg=AFQjCNGfXg_9x83U3pYr6JfkJcWuXv8X0Q" target="_blank">';

$text = preg_replace('/(&amp;sa=[^"]*)/', '', $text);

echo $text;

// Output:
<a href="http://mysite.com/documentos/Servicios/SUCRE/sucDoc19.pdf" target="_blank">

您可以尝试HERE(请使用hjpotter92获取此工具)