我想像这样将对象属性引用转换为数组:
$stuff->a_property
进入
$stuff['a_property']
我试过了
s/->.*\>/['\0'\]/g
但它给了我
$stuff['->a_property']
最佳答案
您可以使用捕获组:
:%s/->\(.*\)\>/['\1'\]/
\(.*\)
用于将 ->
之后的值捕获到用于替换的组 #1 中。这将为您提供 $stuff['a_property']
编辑:如果您想每行进行多次替换,请使用:
:%s/->\(.\{-}\)\>/['\1'\]/g
.\{-}
用于非贪婪匹配,而 .*
用于贪婪匹配。
关于regex - 用 vim 替换单词边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31696388/