我有一个包含日文和英文字符的文本文件
母音 ぼいん vowel
子音 しいん consonant
対話型 たいわがた interactive
基本形, 基本型 きほんけい, きほんがた fundamental form, basic form, basic pattern, basic model, basic type, prototype
能動態 のうどうたい active voice
受動態 じゅどうたい passive voice
如何删除/替换第一个空格后的所有内容,直到任何英文字符?
结果:
母音,vowel
子音,consonant
対話型,interactive
基本形,fundamental form, basic form, basic pattern, basic model, basic type, prototype
能動態,active voice
受動態,passive voice
答案 0 :(得分:4)
尝试此命令:
%s/ [^a-zA-Z]*\ze/,/
此命令的两个关键点是:
\ze
:h \ze
了解详情所以基本上,该行执行问题标题中描述的事情:找到第一个SPACE,(位置X),以及SPACE之后的第一个英文字母(位置Y),将X-Y
替换为{{1 }}
,
是贪婪的,因此*
将找到我们要替换的文本部分。
答案 1 :(得分:1)
一种方法:
:%s/\m\s[^a-zA-Z]\{-}\ze[a-zA-Z]/,/
答案 2 :(得分:0)
:%s/ .\{-}[a-zA-Z0-9]\@=/,/
(替换空格和任何非贪婪数字的字符,直到字母数字跟随逗号的位置)
(使用set magic
)
编辑:正如肯特所说,g
标志不应该在那里。