我有一组像这样的字符串(每个“空格”是一个表格):
29 301 3 31 0 TREZILIDE Trézilidé
2A 001 1 73 1 (LE) AFA (Le) Afa
我想要的是将其转化为:
29301 Trézilidé
2A001 (Le) Afa
我的更大问题是:
^(..)\t[0-9]
但未选择^(..)
或[0-9]
)我在带有Notepad ++的搜索和替换工具箱的文本文件中执行此操作
提前感谢您的帮助!
答案 0 :(得分:6)
如何选择第一个制表而不选择“前缀”和“后缀”?
最好这是使用前瞻和后瞻断言完成的,但Notepad ++不支持6.0之前的版本。下一个最佳解决方案是捕获它们,然后在替换字符串中反向引用它们。
我是这样做的(回答你的完整问题):
检查匹配大小写以执行区分大小写的查找
通过正则表达式查找:
^(..)\t(\d\d\d)[\tA-Z0-9()]+\t(.+)$
替换为:
\1\2 \3
我最终得到了这个,其中<tab>
代表了一个实际的制表:
29301 Trézilidé
2A001 (Le)<tab>Afa
为了摆脱这种情况,我做了一个扩展的发现:
\t
并用空格字符替换它,以获得最终结果:
29301 Trézilidé
2A001 (Le) Afa
答案 1 :(得分:1)
尝试
^(..)\t
替换为
\1
然后
\(*[A-Z][A-Z]+\)*
替换为空字符串,同时删除(LE)
和AFA。
''
然后
^(.....).*(\t[A-Za-z]+)+$
的更换:
\1 \2
最后:
\t
替换为空格。每一次出现。
HTW