viv*_*ino 2 regex vim replace sed
我想将对象属性引用转换为数组,如下所示:
$ stuff-> a_property
成
$的东西[ 'a_property']
我试过了
s/->.*\>/['\0'\]/g
Run Code Online (Sandbox Code Playgroud)
但它给了我
$的东西[ ' - > a_property']
您可以使用捕获的组:
:%s/->\(.*\)\>/['\1'\]/
Run Code Online (Sandbox Code Playgroud)
\(.*\)->在用于替换的组#1 之后用于捕获值.这会给你$stuff['a_property']
编辑:如果你想每行多次替换,那么使用:
:%s/->\(.\{-}\)\>/['\1'\]/g
Run Code Online (Sandbox Code Playgroud)
.\{-}是非贪婪的比赛,而.*贪婪.