如何使用preg_replace删除部分url地址


How to use preg_replace to remove part of url address?

我有一些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">

使用CCD_ 1。

我的代码如下:

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

但它不起作用。

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

您缺少正则表达式分隔符。

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

会给你这个。

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

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

好吧,如果你想删除所有内容,直到第一个引号,那么你可以尝试以下方法而不是regex:

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

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

$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">

你可以在这里试试(这个工具的thks到hjpotter92)