我想用正则表达式删除两个单词之间的空格,但这似乎不起作用。
$pattern = "#\<a href=\"(.+?) (.+?)\">#is";
$txt = preg_replace($pattern, "\<a href=\"\\1%20\\2\">", $txt);
我还需要这个用于多个单词,但只能使用标签,因为文本的其余部分应该有空格。所以str_replace不起作用(我想?)
任何提示?
答案 0 :(得分:1)
稳定的解决方案是:使用DOM检索href值,使用str_replace()
删除空格,然后再次使用DOM回写值。
不要使用正则表达式来处理html / xml。
答案 1 :(得分:0)
尝试使用此正则表达式代码删除空格
\ S +(?= [^()] * \
答案 2 :(得分:0)
你可以试试正则表达式:
$txt = preg_replace('~(?:href="|(?<!^)\G)\K([^" ]*)\s+~g', "$1%20", $txt);
\G
在上一个匹配结束时匹配,以便您可以替换单个属性中的多个空格。