Notepad++(可能是正则表达式):删除其中包含特定字符的字符串

Notepad++(可能是正则表达式):删除其中包含特定字符的字符串

我有 24000 个条目的列表。有些行(不是全部)包含一个包含 | 的字符串:

680311  Kraszna Kraszna Crasna|Krasna|Kraszna   48.15   22.33333    H   STM HU  00  0   108 Europe/Budapest 2014-07-08
713845  Zsombékosdűlő   Zsombekosdulo   Zsombekos|Zsombékos 47.2    20.01667    P   PPLX    HU  HU  16  0   88  Europe/Budapest 2007-08-27
713828  Zvaradűlő   Zvaradulo   46.85   20.78333    P   PPL HU  03  0   81  Europe/Budapest 2007-08-27
672629  Maros   Maros   Marisus|Mures|Muresh|Muresul|Mureş|Mureşul|mwrysh   46.25   20.2    H   STM HU  HU|RO   00  0   81  Europe/Budapest 2009-04-06
677528  Gémesi Révház   Gemesi Revhaz   46.33472    18.89167    P   PPL HU  00  0   102 Europe/Budapest 2014-07-08
680145  Fekete-Körös    Fekete-Koros    Black Koros|Black Körös|Crisu Negru|Crisul Negru|Crişu Negru|Crişul Negru|Fekete-Koros|Fekete-Körös|Raul Crisu Negru|Râul Crişu Negru   46.7    21.26667    H   STM HU  00  0   88  Europe/Budapest 2012-01-18

第三行和第五行是我想要的所有行,所以我想完全删除其中包含 | 的字符串。

因此从这一行开始:

680311  Kraszna Kraszna Crasna|Krasna|Kraszna   48.15   22.33333    H   STM HU  00  0   108 Europe/Budapest 2014-07-08

我们会得到:

680311  Kraszna Kraszna 48.15   22.33333    H   STM HU  00  0   108 Europe/Budapest 2014-07-08

编辑:

数据中有空格,如第五行中的“Gémesi Révház”,这些空格应该保留,同时字符串内也有空格需要删除,如第六行中的“Black Koros|Black Körös|Crisu Negru ...”,这些空格应该与字符串一起消失。

我正在寻找指南和正则表达式解决方案,但找不到针对此类问题的解决方案。

可以用 notepad++ 或 notepad++ 和 regex 来完成吗?

编辑2:

由于范围变为提取一个字符串和两个数字,因此产生了新问题:Notepad++ 和正则表达式:从行列表中提取字符串和两个数字

保留这个问题,讨论可能会有所帮助。

答案1

Ctrl+h然后

查找方式:[ \t]+[^ ]+\|[^ ]+[ \t]+
替换为:(
在“替换为”中使用一个空格,并且不要忘记切换到“正则表达式”)

附言

好消息是,我意识到我只需要第二列,即城市名称加上位置坐标,即从第 4 列或第 5 列开始的前两个数字。我将丢弃其余数据。

那么就会容易得多:

查找内容:^\d+\s+([^ ]+)[^0-9]+\s+([0-9\.]+)\s+([0-9\.]+).+$
替换为:\1 \2 \3

相关内容