-3

次のような 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);

そしてそれはうまくいきません。

ところで、最初の入り口まで preg_replace で検索を制限する必要があります。つまり、すべての html を&amp;sa=FIRSTに置き換える必要があります"が、今で&amp;sa=は LASTから検索し"ます ...

4

3 に答える 3

2

正規表現の区切り文字がありません。

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

これをくれます。

于 2013-08-13T10:10:11.817 に答える
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);
于 2013-08-13T10:13:45.557 に答える
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">

ここで試すことができます(このツールについては hjpotter92 に感謝します)

于 2013-08-13T15:39:12.730 に答える