php - 正则表达式(在 PHP 中)匹配 & 不是 HTML 实体

标签 php regex pcre

目标是:用 & 替换所有独立的符号但不要替换那些已经是 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/

相关文章:

javascript - 使用正则表达式在 javascript 中将每个出现的链接替换为其特定的 href 对象( map 链接 -> a href=link)

python - 如何在有条件的字符串之间添加字符

php - 正则表达式 - PCRE (PHP) - 单词边界 (\b) 和重音字符

perl - grep regex 到 perl 或 awk

php - 在 MVC 框架中,我们应该将 NODE.js 文件放在哪里?

php - 在mysql数据库表中使用php session 变量

php - ldap_bind() - 无法联系 LDAP 服务器

php - 在 MySQL 数据库中制作用于编辑字段的表单的快速而肮脏的方法

regex - 匹配两个原子的有效grep方法?

regex - 匹配奇数个转义符