我有一个包含数字和字母列的文件:
0.01182290 0.02526555 0.46794573 RING zinc finger protein putative 0105800 1076 1166 -90
Run Code Online (Sandbox Code Playgroud)
我想将字母之间的空格替换为下划线.
0.01182290 0.02526555 0.46794573 RING_zinc_finger_protein_putative 0105800 1076 1166 -90
Run Code Online (Sandbox Code Playgroud)
我是正则表达式的新手,替代字符串是[a-zA-Z]\s[a-zA-Z],但我无法确定替换是什么.我试过的一切都改变了空格之间的字母.
:%s/[a-zA-Z]\s[a-zA-Z]/??/g/
Run Code Online (Sandbox Code Playgroud)
一个更简单的替代方案是使用vim的匹配开始和匹配原子的结束(\zs和\ze):
:%s/\a\zs\s\ze\a/_/g
Run Code Online (Sandbox Code Playgroud)
分解:
:%s/ - 开始整个文件的替换命令\a - 简写 [A-Za-z]\zs - 匹配字符串的开始\s - 空格或标签\ze - 匹配结束字符串\a - 与上述相同/_/ - 用一个替换匹配字符串 _g - 对于线上的每次出现| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |