目标是:用 & 替换所有独立的符号但不要替换那些已经是 HTML 实体一部分的那些,例如 。
我想我需要一个用于 PHP 的正则表达式(最好是用于 preg_ 函数),它只匹配独立的 & 符号。我只是不知道如何使用 preg_replace 做到这一点。
最佳答案
PHP 的 htmlentities()
对此有 double_encode
参数。
如果你想在正则表达式中做类似的事情,那么否定断言就很有用了:
preg_replace('/&(?!(?:[[:alpha:]][[:alnum:]]*|#(?:[[:digit:]]+|[Xx][[:xdigit:]]+));)/', '&', $txt);
关于php - 正则表达式(在 PHP 中)匹配 & 不是 HTML 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/310572/