我发现您可以在Visual Studio中的查找和替换中使用Regex进行搜索查询。我有很多类似的行:
datum["Id"] = id;
datum["Name"] = name;
我还有更多这样的行:
this.Id = datum["Id"];
this.Name = datum["Name"];
我想把第一行改为:
datum.Set("Id", id);
datum.Set("Name", name);
第二组线:
this.Id = datum.Get<int>("Id");
this.Name = datum.Get<int>("Name");
如何使用查找和替换以及正则表达式?我无法理解。
答案 0 :(得分:0)
点击&#39;启用正则表达式后,使用正则表达式&#39;按钮,将以下内容放入查找:
datum\[\"Id\"\]\s*=\s*id\;
并将以下内容置于替换状态(无需在替换中使用正则表达式):
datum.Set("Id", id);
类似地:
在查找中:
datum\[\"Name\"\]\s*=\s*name\;
取代:
datum.Set("Name", name);
在查找中:
this\.Id\s*=\s*datum\[\"Id\"\]\;
在替换中:
this.Id = datum.Get<int>("Id");
在查找中:
this\.Name\s*=\s*datum\[\"Name\"\]\;
在替换中:
this.Name = datum.Get<int>("Name");
答案 1 :(得分:0)
我认为你需要在替换字段中使用带有替换的通用正则表达式。
这个表达式:
([a-zA-Z0-9_]+)\["([a-zA-Z0-9_]+)"\] = ([a-zA-Z0-9_]+);
匹配您的第一行。
你应该输入&#34; Find ...&#34;字段。
此表达式允许您进行所需的替换:
$1.Set("$2", $3);
把它放到&#34;替换......&#34;字段。
此$n
中的编号表达式替换原始正则表达式中由(...)
定义并按顺序编号的组中的目标。
所以,替换你的第二行就是这样:
查找:(this.[a-zA-Z0-9_]+) = ([a-zA-Z0-9_]+)\["([a-zA-Z0-9_]+)"\];
替换:$1 = $2.Get<int>("$3");
您可以在MSDN
上找到更多信息P.S。随时可以提出更多问题以获取详细信息。