我想只替换
<span class="google-src-text" style="direction: ltr; text-align: left">any character</span>
与此源http://persianfox.ir/html.html中的空格一行一行,我的php代码是
$content = file_get_contents('path/to/html.html');
$content = str_replace('>', ">\n", $content);
echo preg_replace('/<span class="google-src-text" style="direction: ltr; text-align: left">.*.<\/span>/', ' ', $content);
但此代码将替换所有与<span class="google-src-text" style="direction: ltr; text-align: left">
和</span>
对齐的内容。
答案 0 :(得分:1)
如果你的&#34;任何角色都没有HTML,那么这个就可以了。
/<span class="google-src-text" style="direction: ltr; text-align: left">([^<]{1,})<\/span>/
答案 1 :(得分:1)
*
默认为贪婪,您需要将其更改为 lazy ,如下所示:
preg_replace('/<span class="google-src-text" style="direction: ltr; text-align: left">.*?<\/span>/', ' ', $content);
// Note the question mark ^
这将匹配*到第一个</span>
,请注意,如果你有一个嵌套的跨度,它将不会一直到最后。
这就是 You shouldn't parse HTML with Regex 的原因,而应使用 proper HTML DOM parser