如何在记事本++中反转正则表达式区域?

How to inverse regex areas in notepad++?

提问人:Pubg Mobile 提问时间:11/10/2023 更新时间:11/10/2023 访问量:40

问:

我有以下清单:

  <th class="News">14</th>
  <td class="News"><a href="pclinuxos">PCLinuxOS</a></td>
  <td class="News" style="text-align: right" title="Yesterday: 341">341<img src="/web/20050131094820im_/http://distrowatch.com/images/other/alevel.png" alt="=" title="Yesterday: 341"></td>
</tr>
<tr>
  <th class="News">15</th>
  <td class="News"><a href="redhat">Red Hat</a></td>
  <td class="News" style="text-align: right" title="Yesterday: 290">289<img src="/web/20050131094820im_/http://distrowatch.com/images/other/adown.png" alt=">" title="Yesterday: 290"></td>
</tr>
<tr>
  <th class="News">16</th>
  <td class="News"><a href="slax">SLAX</a></td>
  <td class="News" style="text-align: right" title="Yesterday: 274">275<img src="/web/20050131094820im_/http://distrowatch.com/images/other/aup.png" alt="<" title="Yesterday: 274"></td>
</tr>
<tr>
  <th class="News">17</th>
  <td class="News"><a href="vine">Vine</a></td>
  <td class="News" style="text-align: right" title="Yesterday: 269">261<img src="/web/20050131094820im_/http://distrowatch.com/images/other/adown.png" alt=">" title="Yesterday: 269"></td>
</tr>
<tr>

我可以通过以下正则表达式来选择我的目标行:

(.*)\R.+\.png" alt\b

在此处输入图像描述

现在我想使用正则表达式反转我的目标行。
我使用正则表达式来反转它,但我失败了,得到了以下结果!
^(?!.*(.*)\R.+\.png" alt\b).+\R

在此处输入图像描述

为什么我的正则表达式只与其中一行相反?问题出在哪里?

正则表达式 记事本++

评论


答:

1赞 The fourth bird 11/10/2023 #1

在Notepad ++中,您可以使用(*SKIP)和(*FAIL),然后匹配1次或多次任何字符以不匹配空行。

为防止部分匹配,您可以锚定模式,如果仅想要匹配,则可以省略前导捕获组:

^.*\R.+\.png" alt\b(*SKIP)(*F)|^.+

观看正则表达式演示