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

Fre*_*efl -1 php regex preg-replace

我有这个正则表达式:

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

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

这是一个例子

<div id="Foo"></div>
Run Code Online (Sandbox Code Playgroud)

应该:

<div id=Foo></div>
Run Code Online (Sandbox Code Playgroud)

<script>Foo='Bar'</script>
Run Code Online (Sandbox Code Playgroud)

不应该改变因此:

<script>Foo='Bar'</script>
Run Code Online (Sandbox Code Playgroud)

Mat*_*chu 5

HTML是不可预测的,无法使用正则表达式准确处理.除非您创建HTML并且可以非常非常确定其格式,否则请使用HTML解析器.即使你可以,无论如何,HTML解析器可能更容易使用.

对不起:/