【问题标题】:Regex between elements for specific characters特定字符的元素之间的正则表达式
【发布时间】:2020-01-19 22:42:06
【问题描述】:

假设我有以下字符串:

&<div>test & test & test</div><&>

我将如何查找元素标签之间的所有 & ,即&gt;&lt;/? (不必特定于 div)

到目前为止,我已经得到了&gt;.*(&amp;).*&lt;,但这只能找到&gt;&lt;/ 之间的最后一个&。

对于上下文,我最终需要使用这个正则表达式来翻译某些特殊字符以使用适当的转义字符,但仅限于元素之间。

【问题讨论】:

标签: regex string regex-lookarounds regex-group regexp-replace


【解决方案1】:

要仅匹配 &amp;,请使用前瞻:

&(?=[^<>]*</)

这不是防弹的,但希望对您的输入有用。

【讨论】:

    【解决方案2】:

    问题在于.* 表达式是“贪婪的”。而且我在你的正则表达式中看不到最后一个 &lt; 符号后面的斜线。

    确切的答案取决于您使用的 RE 方言(您没有说任何有关它的内容),但在通常情况下,这必须有效:

    >([^<&>]*(&)[^<&>]*)*</
    

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 2018-11-24
      • 1970-01-01
      • 2023-03-17
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2017-02-16
      相关资源
      最近更新 更多