不要替换 html 标签内的任何内容。正则表达式
我有这个正则表达式:
$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>
I have this regular expression:
$buffer = preg_replace("/'([a-zA-Z0-9]+)'/iU",'$1',$buffer);
It removes single quotes when there's no whitespace between the quotes.
I also replaces inside a html tag. I don't want it to do so.
Here's an example
<div id="Foo"></div>
Should be:
<div id=Foo></div>
And
<script>Foo='Bar'</script>
Should not change and therefore be:
<script>Foo='Bar'</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
HTML 是不可预测的,无法准确处理正则表达式。 除非您创建了 HTML 并且非常非常确定其确切格式,否则请使用 HTML 解析器。即使可以,HTML 解析器也可能更容易使用。
对不起 :/
HTML is unpredictable, and cannot be accurately handled with regular expressions. Unless you created the HTML and can be very, very certain of its exact format, use an HTML parser. Even if you can, the HTML parser is probably far easier to use, anyway.
Sorry :/