23

我正在用 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
4

1 回答 1

56

我得到了它的工作:

:%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

需要注意的几点:

  1. 我使用!而不是/作为分隔符来避免必须转义路径斜杠
  2. 你需要逃避(, d, +, 和)在你的尝试中。
  3. 最后你有额外/的。
  4. 要插入匹配组,请使用\1而不是{1}
于 2012-06-17T17:45:51.343 回答