正则表达式:查找重复的标签和

正则表达式:查找重复的标签和

我有这 3 种情况,其中我有<em>和由类</em>构成的 html 标签<p class="TATA"></p>

第一种情况: (1 <em> and 1 </em> anywhere in the tag)

<p class="TATA">Ou quand vous peignez une fleur, comment elle ouvre ses pétales et montre <em>sa me dans </em> grâce dans votre jardin.</p>

第二种情况: (2 <em> and 2 </em> anywhere in the tag)

<p class="TATA"><em>Une fleur est un accompagnement <em>je veux aimer quelqu'un mais </em> je ne peux pas à cause du virus.</em></p>

第三种情况 (1 <em> at begin and 1 </em> at the end of the tag)

<p class="TATA"><em>Une fleur est un accompagnement.</em></p>

问题:我只想找到那些<p class="TATA"></p>包含其他的标签<em>,并且</em>除了在标签开头和结尾的标签之外。

所以输出<em>应该找到那些包含 2和 2 的文件</em>。我该如何进行搜索?

我的正则表达式不是很好,它发现完全相反的结果(第二种情况)。

寻找:(?:<p class="TATA">|\G(?!^))<em>\K.*?</em>(?=.*?</p>)

谁能帮我?

答案1

我认为你的正则表达式过于复杂,除非我误解了这个问题。

对我来说这就足够了:<p class="TATA">.+<em>.+</p>

<em>当标签中包含不紧跟在标签后面的标签时,它会搜索此标签。


要查找<p class="TATA">包含 2 个<em>标签的内容,请使用:

<p class="TATA">.+<em>.+<em>.+</p>

相关内容