Подтвердить что ты не робот

Как найти замену с помощью групп регулярных выражений в vim

Я заменяю все встроенные фрагменты gist с div, чтобы загрузить их неблокирующим способом. Чтобы изменить все устаревшие статьи, содержащие следующие

<script src='https://gist.github.com/1234.js?file=gistfile1.sh'></script>

Мне нужно заменить его следующим:

<div data-gist=1234><a href='http://gist.github.com/1234'>gistfile1.m</a></div>

Пока что я пытаюсь (vim newb здесь) - кажется, не работает

:%s/<script src='https:\/\/gist.github.com\/(d+).js?file=gistfile1.sh'><\/script>/<div data-gist={1}><a href='http://gist.github.com/{1}'>gistfile1.m</a></div>//g
4b9b3361

Ответ 1

Я получил это для работы с этим:

:%s!<script src='https://gist.github.com/\(\d\+\).js?file=gistfile1.sh'></script>!<div data-gist=\1><a href='http://gist.github.com/\1'>gistfile1.m</a></div>!g

Пара примечаний:

  • Я использовал ! вместо / как разделитель, чтобы избежать необходимости сбрасывать косые черты
  • Вам нужно избежать (, d, + и ) в вашей попытке.
  • У вас был дополнительный / в самом конце.
  • Чтобы вставить группу соответствия, используйте \1 вместо {1}