我有 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