如何在vim中使用正则表达式组查找替换

Tor*_*ups 19 regex vim

我正在替换所有带有div的内联gist片段以非阻塞方式加载它们.修改具有以下内容的所有旧文章

<script src='https://gist.github.com/1234.js?file=gistfile1.sh'></script>
Run Code Online (Sandbox Code Playgroud)

我需要用以下代替它

<div data-gist=1234><a href='http://gist.github.com/1234'>gistfile1.m</a></div>
Run Code Online (Sandbox Code Playgroud)

到目前为止我正在尝试(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
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 50

我得到了这个:

:%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
Run Code Online (Sandbox Code Playgroud)

值得注意的事情:

  1. 我使用!而不是/作为分隔符来避免不得不逃避路径斜杠
  2. 你需要逃跑(,d,+,和)在你尝试.
  3. 你最后有额外/的.
  4. 要插入匹配组,请使用\1而不是{1}