我想用正则表达式删除两个单词之间的空格,但这似乎不起作用。
$pattern = "#\<a href=\"(.+?) (.+?)\">#is";
$txt = preg_replace($pattern, "\<a href=\"\\1%20\\2\">", $txt);
我还需要它来处理多个单词,但只能使用标签,因为其余的文本应该有空格。所以 str_replace 不起作用(我认为?)
有小费吗?
The stable solution would be: Use DOM to retrieve the href value, use str_replace()
to remove the spaces and then write back the value using DOM again.
Don't use regexes to handle html / xml.
您可以尝试正则表达式:
$txt = preg_replace('~(?:href="|(?<!^)\G)\K([^" ]*)\s+~g', "$1%20", $txt);
\G
匹配上一个匹配项的末尾,以便您可以替换单个属性中的多个空格。
试试这个正则表达式代码来删除空格
\s+(?=[^()]*\