Vim Pattern заменяет

 <created>
  pat@c.com 
</created>

Я хочу заменить вышеупомянутое, но имя пользователя может отличаться, например,pat@c.com,harry@c.com...

  <created>
   tom@c.com
  </created>

Какая команда заменить это в vim

 %s/<created>\r*\r</created>/new string

1 ответ

Решение

У меня это сработало так:

%s/<created>\n\s*\w*@\w*\n<\/created>/newstring/

Если вы хотите повторно ввести адрес электронной почты, вы можете использовать:

%s/<created>\n\s*\(\w*@\w*\)\n<\/created>/newstring: \1/

Немного объяснения:

  • \n: новая линия
  • \s: пробелы и табуляции
  • \wлюбой символ слова
  • \( а также \): захватить то, что внутри
  • \1: использовать первое захваченное выражение
Другие вопросы по тегам