首页 > 解决方案 > 如果它们包含子字符串,则正则表达式跳过匹配

问题描述

这是测试用例:

<td>ARMOIRE 6 PORTES &lt;span style=&quot;font-family: arial;&quot;&gt;&lt;u style=&quot;color: rgb(170, 170, 170);&quot;&gt;:</td><td>Longueur : 297 cm - Profondeur : 73 cm - Hauteur : 260 cm.&lt;/span&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;&lt;u&gt;ARMOIRE 4 PORTES &lt;span style=&quot;font-family: arial;&quot;&gt;&lt;u style=&quot;color: rgb(170, 170, 170);&quot;&gt;:</td></tr><tr><td>Chevet

这是我的解决方案:(?<=&)(?!. <)。?(?=[AZ])

基本上我想选择 & 和 [AZ] 的第一个实例之间的所有内容,但如果它包含 html 标记括号则不选择。起初我认为它不起作用,因为它没有 - 不是在 Notepad++ 中,不是在 regex101.com

但是,如果我修改测试字符串

<td>ARMOIRE 6 PORTES &lt;span style=&quot;font-family: arial;&quot;&gt;&lt;u style=&quot;color: rgb(170, 170, 170);&quot;&gt;:</td><td>Longueur : 297 cm - Profondeur : 73 cm - Hauteur : 260 cm.&lt;/span&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;&lt;u&gt;ARMOIRE 
4 PORTES &lt;span style=&quot;font-family: arial;&quot;&gt;&lt;u style=&quot;color: rgb(170, 170, 170);&quot;&gt;:</td></tr><tr><td>Chevet

然后它工作。在正则表达式101上测试

我想了解为什么以及如何修改我的正则表达式以涵盖这两种情况 - 如果可能的话。

标签: regex

解决方案


推荐阅读