首页 > 解决方案 > 正则表达式将返回值移动到函数参数

问题描述

我有很多行,如下所示:

PlayerInfo[playerid][pValue] = cache_get_value_name_int(i, "field");

但是,由于库更改,我现在需要用以下内容替换此行:

cache_get_value_name_int(i, "field", PlayerInfo[playerid][pValue]);

问题是 PlayerInfo[playerid][pValue] 是改变的“词”。每隔一行替换它。“字段”也会发生同样的事情。

我有很多行需要替换,至少有几百行,所以我想找到某种正则表达式来轻松替换它们。

有什么解决方案吗?

标签: regex

解决方案


在记事本++中,您可以使用此正则表达式:

([^\s]+) = cache_get_value_name_int\(i,\s*("[^"]+")\s*\);

它搜索一些非空格字符(作为第 1 组捕获),然后是(如果间距可以变化,=您可能想要使用),然后是一个包含在中的字符串(作为第 2 组捕获),然后是尾随的and 。\s*=\s*cache_get_value_name_int(i,");

并将其替换为

cache_get_value_name_int\(i, $2, $1\);

请注意,您可能需要添加\s*位置以考虑不同的间距。

如果该值i也可以更改,您可以使用此正则表达式来捕获该字符串:

([^\s]+) = cache_get_value_name_int\((\w+),\s*("[^"]+")\s*\);

并将其替换为:

cache_get_value_name_int\($2, $3, $1\);

推荐阅读