Регулярное выражение в vim при выполнении замены

#regex #vim

#регулярное выражение #vim

Вопрос:

У меня есть текстовый файл со многими операторами, такими как: «1», «23»,….. и т.д., и я хочу заменить эти вхождения на 1, 23, … и т.д. Это просто удаление кавычек. Как я могу сделать это в VIM?

Комментарии:

1. возможно, вам следует запустить vimtutor .

Ответ №1:

Используйте :

 :%s/"(d )"/1/g
  

Что означает: замените любую последовательность цифр между двойными кавычками на саму последовательность цифр.

Для получения дополнительной информации:

 :help :s
:help pattern
  

Комментарии:

1. Полезный пример команды поиска, но ИМХО просто s/"//g сделать «просто удалить кавычки», как указано в вопросе

Ответ №2:

Затем вы вводите esc:

 :%s/"([0-9]*)"/1/g
  

Это заменит шаблон: «любые цифры» на любые цифры.
Обратите внимание, что это 1 будет реплицировать то, что было сопоставлено в этих: ( )

Комментарии:

1. Это также приведет к удалению любой пары последовательных двойных кавычек без цифр внутри.

Ответ №3:

Вы можете сделать это следующим образом —

 :%s/"(d )"/1/c
  

Комментарии:

1. /c будет запрашиваться подтверждение, и только один раз за строку. Вы, по крайней мере, хотите также добавить g флаг.