【问题标题】:Need to omit an regex pattern inside another regex expression需要在另一个正则表达式中省略一个正则表达式模式
【发布时间】:2018-01-09 09:20:44
【问题描述】:

我想创建一个匹配除锚标记之外的所有 HTML 标记的表达式

<a href="something">

我希望它匹配所有其他标签,例如 pulli 等。

<p>asdasdasd</p>
<p sdasdsad><a href="asdasdasd"> AAAA</a></p>

应该变成

asdasdasd
<a href="asdasdasd"> AAAA</a>

【问题讨论】:

  • &lt;p&gt;asdasdasd&lt;/p&gt; &lt;p sdasdsad&gt;&lt; a href "asdasdasd"&gt; AAAA&lt;/a&gt;&lt;/p&gt; 应该变成 asdasdasd &lt; a href "asdasdasd"&gt; AAAA&lt;/a&gt;
  • 我在编辑中演示了如何使代码更好地可见。请edit您的问题添加评论中的信息;也许解释一下它应该是什么意思......
  • 使用正则表达式处理 html(或 xml)很可能会变成令人沮丧的体验。我建议使用专用工具。
  • 如果您想知道,您可能会因为没有展示您自己的任何尝试而甚至没有采取tour而遭到反对(不是我)。
  • 此外,仅通过列出要求来寻求解决方案的问题通常被认为过于宽泛而离题 - 并且对利用时间帮助理解和解决问题的人不礼貌 - 不要进行编程工作免费。

标签: html regex tags


【解决方案1】:

匹配任何标签

<[^>]*>

匹配除以a 开头的标记之外的标记,使用否定前瞻

<(?!a )[^>]*>

不匹配结束标签添加可选的'/'和单词边界而不是空格

<(?!\/?a\b)[^>]*>

【讨论】:

  • 谢谢。 ]*> 使用它会匹配除带有锚标签的所有内容。如果我也不想匹配结束的 标签,我应该如何进行?我应该使用“|”吗?
  • 这是我将它们分开以便更容易理解的最后一个表达式
  • 感谢您的回答。已经很理解了。
  • 负前瞻 (?!..),与其他外观一样,长度为 0 也匹配 \b,它匹配非字母字符后跟字母字符或字母字符后跟非字母;和^$
猜你喜欢
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
相关资源
最近更新 更多