我被正则表达式命令难住了,无法找到部分字符串的重复项。
第一个问题:这是我的文件中的内容
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 键并通过鼠标选择文本),则它将对至少部分选定的所有行进行排序,但将根据选定部分进行排序。
为了能够按列排序,您可能需要至少暂时用制表符替换半列。