【问题标题】:Regex to require some words and not accept a word正则表达式需要一些词而不接受一个词
【发布时间】:2017-08-23 19:40:27
【问题描述】:
<iframe.+?((width="320")).+?(?!height=".+")src="https?:\/\/www.youtube.com\/embed\/([a-zA-Z0-9_-]{11})"[^>]+?><\/iframe>

我需要匹配宽度 =“320”但没有高度的 youtube iframe。即使我输入高度,它仍然返回 true。 请指导我。

【问题讨论】:

  • 由于正则表达式没有完全标准化,所有带有这个标签的问题还应该包含一个标签,指定适用的编程语言或工具。 — 哪种语言,JavaScript?跨度>
  • 注意:要求 HTML、JSON 等正则表达式往往会遭到负面反应。如果有解析器,请改用它。
  • 对不起,这是针对 php 的。谢谢

标签: php regex html-parsing


【解决方案1】:

使用锚定的负面展望开始:

(?!.*height="[^"]+")iframe.+?width="320".+?src="https?://www.youtube.com/embed/([\w-]{11})"[^>]+?></iframe>

【讨论】:

  • 它似乎不匹配
  • 您使用什么语言?我删除了所有斜杠的转义符,因为它们不是必需的。如果您使用的是 JavaScript,您可能需要将整个表达式包装为斜线和转义斜线。
  • php ^(?!.*height="[^"]+")iframe.+?width="320".+?src="https?:\/\/www.youtube .com\/embed\/([\w-]{11})"[^>]+?>
  • 原来我只需要在开始时去掉胡萝卜。谢谢大佬
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 2015-11-05
  • 2018-01-23
  • 1970-01-01
  • 2010-10-24
  • 2022-07-22
  • 2023-04-01
相关资源
最近更新 更多