正则表达式:查找以特定标签开头并以不同标签结尾的所有行

正则表达式:查找以特定标签开头并以不同标签结尾的所有行

我想查找所有以特定标签开头并以不同标签结尾的行。例如:

<p class="amigo">My mother is at home.<br>

尝试了正则表达式,但效果不太好,因为选择并没有停止在<br>,它会选择其后的所有内容,如果我有更多这样的标签: .*<p class="amigo">(?s)(.*)<br>*$

谁能帮我?

答案1

只需使通配符不贪婪:

<p class="amigo">(?s)(.*?)<br>
//               here __^

根据评论编辑:

  • Ctrl+F
  • 找什么:<p class="amigo">(?:(?!</?p).)*<br>
  • 取消勾选匹配大小写
  • 检查环绕
  • 检查正则表达式
  • 查看. matches newline
  • Search in document

解释:

<p class="amigo">   # literally
(?:                 # start non capture group
    (?!</?p)        # negative lookahead, make sure we haven't "<p" or "</p"
    .               # 1 anycharacter
)*                  # end group, may appear 0 or more times
<br>                # literally

在此处输入图片描述

答案2

另外,我找到了另一个答案:

<p class="amigo">(?s)(?-s)(.*)<br>*$

或者

<p class="amigo">(?-s)(.*)<br>*$

相关内容