我有以下文字:
接近,紧随其后,按顺序或沿指定路线行进/ 方向
如何匹配“e”之后的空格,然后用标签替换它?
虽然这对你们所有人来说都很容易,但我花了4个小时试图做到这一点却没有成功。
一般规则是“仅匹配第二个单词后面的空格”。我有超过2000条独特的线条,这就是我需要正则表达式的原因。
谢谢!
答案 0 :(得分:1)
搜索:^([^ ]+[ ]+[^ ]+)[ ]
替换为:\1\t
从行的开头,查找非空格的模式,后跟空格,后跟另一组非空格。最后,匹配一个空格字符 替换是导致最终空格字符的所有内容,然后是选项卡。
演示:http://regex101.com/r/oS8vV7/1
您可能无法仅匹配 您要替换的空间。这需要一个可变长度的后视isn't supported。
答案 1 :(得分:1)
在vi
编辑器中,您可以使用此搜索/替换:
:s/^\([[:blank:]]*\w\+[[:blank:]]\+\w\+\)[[:blank:]]\+/\1\t/
或更短(感谢@PeterRincker):
:%s/\v(\w+\zs\s+){2}/\t
答案 2 :(得分:0)
s/\s//2
这可用于搜索空格(\s
)和删除空格,2
表示第二个空格。