在我的文件中,我有很多行包含
之类的内容['a', 'b', 'c']
我需要用
替换array('a', 'b', 'c')
决定尝试弄清楚如何使用vim进行替换,但我得到的最好的方法是分别匹配[
和]
。在一个正则表达式中执行此操作的正确方法是什么?我假设它与反向引用有关。
答案 0 :(得分:3)
如果您使用捕获组。
:%s/\[\(.*\)]/array(\1)
查找方括号之间的所有内容,替换外部保留中间的内容。
答案 1 :(得分:1)
这是一个perl one-liner;在你的shell中运行它:
# Assuming entries like ['a', 'b', 'c'] are in file.txt
perl -pi -e 's/\[(.*)\]/array\($1\)/g' file.txt
# ['a', 'b', 'c'] changed to array('a', 'b', 'c') in file.txt
答案 2 :(得分:1)
答案 3 :(得分:-1)
使用Vim替代命令。
:%s/['a', 'b', 'c']/array('a', 'b', 'c')/g