Regex vim中的Perl正则表达式?
如何在Vim中编写这个perl regex replace命令?(摘自):Regex vim中的Perl正则表达式?,regex,perl,vim,Regex,Perl,Vim,如何在Vim中编写这个perl regex replace命令?(摘自): 将现有的一个衬里制成管道过滤器 perl -pe 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg' 然后使用1G!G或:%通过该过滤器传递当前文件,例如 :%!perl -pe 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg' 我不
将现有的一个衬里制成管道过滤器
perl -pe 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg'
然后使用1G!G
或:%通过该过滤器传递当前文件,例如
:%!perl -pe 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg'
我不能代表-I-0pe
标志说话,但正则表达式:
s/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg
将是:
s/^Insert\s*\(.*\).png\s*\n\(.*\)$/!\[\2](..\/figures\/\1-tn.png)/g
请注意,您必须退出捕获组,并且我在第二个捕获组中使用了*
而不是[^\n]*
。您不需要多行标志。您要查找的很多内容取决于“魔法”设置的设置。请参阅:help magic
,了解有关charctors vim的字面含义的更多信息。您可以添加一个它应该匹配的示例吗?正如我所写的,我不确定有多少符号应该被转义。\s*
应该匹配“”还是“*”?我假设是后者。对不起,我没有安装perl:-(当然,我忘了不是每个人都买得起perl:-)我不想免费使用它:-)有一个名为eregex.vim
的插件,它可以自动从PCRE转换为vim的语法。
s/^Insert\s*\(.*\).png\s*\n\(.*\)$/!\[\2](..\/figures\/\1-tn.png)/g