REGEX:查找包含运算符但不包含其他运算符的 HTML 标签

REGEX:查找包含运算符但不包含其他运算符的 HTML 标签
1. <p class="mb-40px">My nick name is Prince and <a href="https://mywebsite.com/bla.html" class="color-gege" target="_new">my real name</a> is beyond magic.</p>
    
2. <p class="mb-40px">I love my home s< because I stay with my lovely cat.</p>

3. <p class="mb-40px">Because of this book t< I cannot sleep well.</p>

我只想找到有运算符的行<包含在 html 标记中<p class="mb-40px"> </p>,除了那些包含

在我上面的例子中,输出应该是第 2 行(有 s<) 和第 3 行 ( 有t<

因此,我使用一个旧的通用公式:(REGION-START)+(.)+\K(FIND REGEX)(?s:(?=.*(REGION-FINAL)))

就我而言,查找:(<p class="mb-40px">)+(.)+\K(\w<)(?s:(?=.*(</p>)))

问题是我的正则表达式也e</a>从第一行开始查找。我不想找到带有</a>

答案1

  • Ctrl+F
  • 找什么:<p class="mb-40px">(?:(?!</p>).)*< .*?</p>
  • 用。。。来代替:\u$1
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 查看 . matches newline
  • Find All in Current Document

解释:

<p class="mb-40px">     # literally
(?:(?!</p>).)*          # Tempered Greedy Token
                        # make sure we don't encountered </p>
<                       # < and a space
.*?                     # 0 or more any character, not greedy
</p>                    # literally

截屏:

在此处输入图片描述

答案2

尝试这个:

寻找:(?<p class="mb-40px"><(?!/a)[^>]*</p>)

相关内容