获取包含该属性的所有标签的正则表达式 (href|src)

发布于 2024-11-08 21:28:35 字数 85 浏览 0 评论 0原文

这是行不通的。有人能看出为什么吗?

"/<(.*)[href|src](.*)>/ismU"

This doesn't work. Can anybody spot why?

"/<(.*)[href|src](.*)>/ismU"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

萌梦深 2024-11-15 21:28:35

有几件事:

如果必须的话,(.*) 将跨标记边界匹配(即使您确实使用了 /U 修饰符默认使量词变得惰性。

[href|src] 表示“匹配一个字符,可以是 href|sc”。

/m 修饰符没有用如果您在正则表达式中不使用 ^$ 锚点,

请尝试以下操作:

/<[^<>]*(href|src)[^<>]*>/i

但即使这样,将正则表达式应用于 HTML 也会带来麻烦。

Several things:

(.*) will match across tag boundaries if it has to (even though you did use the /U modifier to make quantifiers lazy by default.

[href|src] means "match one character, either a h, a r, an e, an f, a |, an s or a c".

The /m modifier is useless if you don't use ^ or $ anchors in your regex.

Try this instead:

/<[^<>]*(href|src)[^<>]*>/i

But even with this, applying regular expressions to HTML is asking for trouble.

九八野马 2024-11-15 21:28:35

尝试使用 XPaths 而不是正则表达式来解决您的问题。

Try to solve your problem using XPaths instead of regexes.

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