在html标记内部时不要替换任何内容.Preg Regex


Do not replace anything when inside a html tag. Preg Regex

我有一个正则表达式:

$buffer = preg_replace("/'([a-zA-Z0-9]+)'/iU",'$1',$buffer);

当引号之间没有空格时,它会删除单引号。我还替换了一个html标签。我不希望它这样做。

这里有一个的例子

<div id="Foo"></div>

应为:

<div id=Foo></div>

<script>Foo='Bar'</script>

不应该改变,因此是:

<script>Foo='Bar'</script>

HTML是不可预测的,不能用正则表达式准确处理。除非您创建了HTML,并且可以非常非常确定其确切格式,否则请使用HTML解析器。即使可以,HTML解析器也可能更容易使用。

抱歉:/