不要替换 html 标签内的任何内容。正则表达式

发布于 2024-11-17 23:38:21 字数 464 浏览 1 评论 0原文

我有这个正则表达式:

$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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无敌元气妹 2024-11-24 23:38:21

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 :/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文