notepad ++正则表达式标记重复字符串

时间:2013-10-13 04:43:35

标签: regex notepad++

我正在寻找在第一个字符串<item name=".*">

中标记重复项的方法
<item name="drawable/ab_solid_dark_holo">

<item name="drawable/ab_solid_dark_holo">@drawable/frameworks_res_ab_solid_dark_holo</item>
<item name="drawable/ab_solid_dark_holo">@drawable/frameworks_res_ab_solid_light_holo</item>

谢谢

2 个答案:

答案 0 :(得分:1)

您无法突出显示所有重复的<item name=".*">,但您几乎可以突出显示所有内容。只有最后一个<item name=".*">不会被这种方法突出显示,因为记事本的正则表达式引擎不能支持宽度可变的外观。

我正在谈论的那个正则表达式就是这个:

<item name="([^"]+)">(?=[\s\S]*<item name="\1">)

如果它是重复的,它会突出显示<item name=".*">,所以如果你有:{/ p>

<item name="drawable/ab_solid_dark_holo">@drawable/frameworks_res_ab_solid_dark_holo</item>
<item name="drawable/ab_solid_dark_holo">@drawable/frameworks_res_ab_solid_light_holo</item>
<item name="drawable/ab_solid_dark_holo">@drawable/frameworks_res_ab_solid_bright_holo</item>
<item name="drawable/ab_solid_light_holo">@drawable/frameworks_res_ab_solid_dark_holo</item>
<item name="drawable/ab_solid_bright_holo">@drawable/frameworks_res_ab_solid_light_holo</item>

前两个<item name=".*">将被标记或突出显示(查找下一个或者它将进入文档中查找全部的结果)但不是最后一个。不幸的是,一旦你知道副本是什么,你就不得不手动找到最后一个。

答案 1 :(得分:0)

怎么样

<[^>]+>

会失败
<item name="drawable/ab_solid>dark_holo">@drawable/frameworks_res_ab_solid_dark_holo</item>

其中一个属性

中有>