如何使用正则表达式替换将object:method(...)转换为方法(对象,...)

时间:2016-01-17 15:20:09

标签: regex replace lua

我在Lua(一种脚本语言)中有许多类似于

的源代码行

对象:方法(...)

后来我决定让方法成为一般函数,然后我需要将上面的行改为

方法(对象...)

我认为正则表达式替换可以解决我的问题,但我只是在努力。

BTW,对象和方法的名称遵循共同的身份约定,例如由字符,数字和" _"组成。仅

请帮忙。最好使用文本编辑器(如Visual Studio)来执行此操作。

提前谢谢你,

2 个答案:

答案 0 :(得分:0)

这是一个Lua解决方案:

S=[[
object1:method1()
object2:method2(a)
object3:method3(a,b)
]]

S=S:gsub("(%w+):(%w+)%(%)","%2:(%1)")
S=S:gsub("(%w+):(%w+)%((.-)%)","%2:(%1,%3)")
print(S)

答案 1 :(得分:0)

您可以使用简单的搜索并替换:

\b(\w+):(\w+\s*)\(

并替换为$2($1,

解释

  • \b - 字边界
  • (\w+) - 第1组:一个或多个单词字符(在替换中,此文本以$1反向引用)
  • : - 文字:
  • (\w+\s*) - 第2组:一个或多个单词字符后跟零个或多个空格(在替换中,此文本以$2反向引用)
  • \( - 文字(字符

请参阅regex demo

此表达式适用于Notepad ++或Visual Studio。