-4

我正在寻找一种方法来标记第一个字符串中的重复项 <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>

谢谢

4

2 回答 2

1

您不能突出显示所有重复项<item name=".*">,但可以突出显示几乎所有;只有最后一个<item name=".*">不会使用此方法突出显示,因为记事本的正则表达式引擎不支持可变宽度的lookbehinds。

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

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

如果它是重复的,它将突出显示<item name=".*">唯一,因此如果您有:

<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=".*">将被标记或突出显示(使用 find next 或它将进入 Find All in Document 的结果)但不是最后一个。不幸的是,一旦您知道重复项是什么,您就必须手动找到最后一个。

于 2013-10-13T08:25:00.883 回答
0

怎么样

<[^>]+>

但这将失败

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

>在其中一个属性中

于 2013-10-13T05:02:08.093 回答