我想用正则表达式去掉两个单词之间的空格,但是这似乎不起作用。用正则表达式去掉空格
$pattern = "#\<a href=\"(.+?) (.+?)\">#is";
$txt = preg_replace($pattern, "\<a href=\"\\1%20\\2\">", $txt);
我也需要这个工作多个单词,但只有标签,因为其余的文本应该有空格。所以str_replace不会工作(我认为?)
任何提示?
我想用正则表达式去掉两个单词之间的空格,但是这似乎不起作用。用正则表达式去掉空格
$pattern = "#\<a href=\"(.+?) (.+?)\">#is";
$txt = preg_replace($pattern, "\<a href=\"\\1%20\\2\">", $txt);
我也需要这个工作多个单词,但只有标签,因为其余的文本应该有空格。所以str_replace不会工作(我认为?)
任何提示?
稳定的解决方案是:使用DOM检索href值,使用str_replace()
删除空格,然后再使用DOM回写该值。
不要使用正则表达式来处理html/xml。
试试这个正则表达式的代码删除空格
\ S +(= ^()] * \
您可以尝试正则表达式:在结束
$txt = preg_replace('~(?:href="|(?<!^)\G)\K([^" ]*)\s+~g', "$1%20", $txt);
\G
比赛以便您可以用单个属性替换多个空格。
你说得对。 'str_replace()'不适合这种情况。 – Treffynnon
浏览器不会为您编码网址吗? –