我在一个txt文件中获得了很多这些字符串:
X00NAP-0111-OG02Flur-A 2 AIR-CAP2702I-E-K9 00:b8:b8:b8:7d:b8 0111-HGS DE 10.100.100.100 8
X006NAP-0500-EG00Grossrau-A 2 AIR-CAP2702I-E-K9 50:0f:80:94:82:c0 HGS 0500 DE 10.100.100.100 1
Y008NAP-8399-OG04OE3020-A 2 AIR-CAP2702I-E-K9 00:b8:b8:b8:7d:b8 HGS Erfurter Hof DE 10.100.100.100 1
A1234NAP-4101-OG02Raum237-A 2 AIR-CAP2602I-E-K9 00:b8:b8:b8:7d:b8 AP 2 Anmeldung V DE 10.100.100.100 0
我只对第一个字符串和行尾的数字感兴趣。数量可以是最大值。 99 所以最后我希望有这样的输出:
X00NAP-0111-OG02Flur-A 8
X006NAP-0500-EG00Grossrau-A 1
Y008NAP-8399-OG04OE3020-A 1
A1234NAP-4101-OG02Raum237-A 0
我用正则表达式尝试了很多东西,但没有任何效果。
答案 0 :(得分:1)
以下是一般的正则表达式解决方案:
<强>查找强>
^([^\s]*).*(\d+)$
<强>替换强>
$1 $2
这里的想法是将第一个字符串和最终数字匹配为 capture 组,这些组由括号括起的模式中的两个术语表示。这些捕获组在替换时可用$1
和$2
(有时\1
和\2
,具体取决于正则表达式工具/引擎)。我们可以用这些捕获组替换每一行,为您留下您期望的输出。
请注意,这可能会“废弃”原始文件,但如果您使用的是Notepad ++之类的工具,则只需复制此结果,然后撤消替换,或者只关闭原始文件而不保存。
答案 1 :(得分:0)
我能想到的最简单的方法是:
Find: " .* "
Replace: " "
用一个空格替换从第一个空格到最后一个空格的所有内容,实现您的目标。
注意:引号仅用于帮助显示正则表达式中空格的位置。