正则表达式查找部分字符串的重复项

正则表达式查找部分字符串的重复项

我被正则表达式命令难住了,无法找到部分字符串的重复项。

第一个问题:这是我的文件中的内容

1;0197CE75;BC702
2;01966666;BC702
3;018B9AC5;BC702
42;018B9E21;BC702
6;018B9AC5;BC702
776;018BA0A4;BC702

如您所见,我在 3; 和 6; 上有 2x 018B9AC5。我想使用 Notepad++ 标记选项(CTRL+H)快速检测不同行中 ; ; 之间的 2 个重复项。可能吗?

第二个问题:这是我的文件中的内容

1;0197CE75;BC702
2;01966666;BC702
3;018B9AC5;BC702
3;018B9E21;BC702
36;018B9AC9;BC702
776;018BA0A4;BC702

正如您现在所看到的,我有 2x 3;我可以用另一个正则表达式命令以某种方式标记它吗?或者是否可以用 1 个正则表达式命令进行两个标记?

这个正则表达式:

(?=\b\w{8}\b)\w*[A-Za-z0-9]\w*

标记第二列中的所有内容,我只需要重复的内容......

这个正则表达式:

^(.*?)$\s+?^(?=.*^\1$)

标记相同的行,如果有重复的行

 3;018B9AC5;BC702
 3;018B9AC5;BC702

我需要在;之间标记行的一部分的重复...;

答案1

Notepad++ 不是执行此类操作的最佳工具。

我不认为您可以标记重复项,但我知道一种可以提取它们的方法。

文章 使用插件 TextFX 对行进行排序关于使用 TextFX 插件的说法:

对文本进行排序:

  • 从菜单:TextFX | TextFX 工具并选择以下之一:
    • 清除选项“+升序排序”的复选标记以按降序排序。
    • 勾选“+升序排序”选项,即可按升序排序。
  • 选择文本,可以是文本行或文本列(请参阅下面的列模式选择)。
  • 从菜单:TextFX -> TextFX 工具 -> {menu_cmd},其中为 {menu_cmd} 选择菜单栏顶部的两个命令之一;即:
    • “按区分大小写的方式对行进行排序(在列中)”
    • “对行进行排序不区分大小写(在列)”

TextFX Tools 将仅对您选择的行进行排序。如果您执行列模式选择(按住 Shift + Alt 键并通过鼠标选择文本),则它将对至少部分选定的所有行进行排序,但将根据选定部分进行排序。

为了能够按列排序,您可能需要至少暂时用制表符替换半列。

相关内容