2017-01-14 10 views
1

У меня есть текстовый файл, как это:поиска и замены в парах в VIM регулярных выражений

This is sentence 1: text I don't need 
This is sentence 2? text I don't need 
This is sentence 3? text I don't need 
This is sentence 4: text I don't need 

Я знаю, что это можно сделать %s/[:\|?].*/:, например, чтобы заменить все, что происходит после того, как : и ? с :

Можно ли заменить все, что появилось после : и ? с : и ? соответственно?
Я попытался %s/[:\|?].*/:\|? и он не работает

+0

касающихся '% s/[: \ |?]. * /: 'вы имели в виду фактически'% s /[:?].*/: ', что является правильным, и то, что вы пытаетесь сделать, это'% s/\ (: \ |? \). */\ 1/'через ** группу захвата **. –

+1

'% s/\ (: \ |? \). */\ 1 /' и '% s/\ ([:?] \). */\ 1 /' и '% s/[:?] \ zs. * // 'имеют одинаковый эффект! –

+0

Ох, я вижу, спасибо! – omrisim210

ответ

0
:%s/\d\+.\zs.*//g 

Использование \ ZS ВИМ будет использовать все после того, как цифры на замещение см: ч \ ZS