我有一个代码,object.attribute其中属性可以是数组示例:object.SIZE_OF_IMAGE[0]或简单的字符串。我想搜索所有出现的情况"object.attribute"并将其替换为self.lowercase(attribute)我想要 vim 上的正则表达式来执行此操作。
我可以使用它:%s/object.*/self./gc并手动替换它,但速度非常慢。
这里有些例子:
object.SIZE到self.size
object.SIZE_OF_IMAGE[0]到self.size_of_image[0]
你基本上只需要两件事:
:help /\(允许您存储之间匹配的内容\(...\),然后在替换中(甚至之后在模式本身中)引用它(通过\1、等)。\2:help s/\L的替换操作使所有内容都变成小写。这将为您提供以下命令:
:%substitute/\<object\.\(\w\+\)/self.\L\1/g
Run Code Online (Sandbox Code Playgroud)
笔记:
\<schlobject\w\+匹配字母、数字和下划线(因此它满足您的示例);这里可以有多种替代方案。