Regex 使用正则表达式在Visual Studio中查找和替换

Regex 使用正则表达式在Visual Studio中查找和替换,regex,visual-studio,visual-studio-2012,Regex,Visual Studio,Visual Studio 2012,我发现您可以在VisualStudio中的查找和替换中使用正则表达式进行搜索查询。我有很多类似的行,比如: 基准[“Id”]=Id; 数据[“名称”]=名称; 我还有更多这样的话: 此.Id=基准[“Id”]; this.Name=datum[“Name”]; 我想把第一行转到: 数据集(“Id”,Id); 数据集(“名称”,名称); 第二组行用于: this.Id=datum.Get(“Id”); this.Name=datum.Get(“Name”); 如何使用Find和Re

我发现您可以在VisualStudio中的查找和替换中使用正则表达式进行搜索查询。我有很多类似的行,比如:


基准[“Id”]=Id;
数据[“名称”]=名称;

我还有更多这样的话:


此.Id=基准[“Id”];
this.Name=datum[“Name”];

我想把第一行转到:


数据集(“Id”,Id);
数据集(“名称”,名称);

第二组行用于:


this.Id=datum.Get(“Id”);
this.Name=datum.Get(“Name”);


如何使用Find和Replace以及Regex?我想不出来。

单击“使用正则表达式”按钮启用正则表达式后,将以下内容放入“查找”中:

datum\[\“Id\”\]\s*=\s*Id\

并在replace中放置以下内容(无需在replace中使用正则表达式):

同样地:

在查找中:

datum\[\"Name\"\]\s*=\s*name\;  
this\.Name\s*=\s*datum\[\"Name\"\]\; 
替换为:

datum.Set("Id", id);
datum.Set("Name", name);
在查找中:

this\.Id\s*=\s*datum\[\"Id\"\]\; 
替换为:

this.Id = datum.Get<int>("Id");
this.Name = datum.Get<int>("Name");
替换为:

this.Id = datum.Get<int>("Id");
this.Name = datum.Get<int>("Name");
this.Name=datum.Get(“Name”);

我认为您需要在replace字段中使用替换的通用正则表达式

这句话:

([a-zA-Z0-9_]+)\["([a-zA-Z0-9_]+)"\] = ([a-zA-Z0-9_]+);
匹配你的第一行

您应该在“查找…”字段中输入

此表达式允许您进行所需的替换:

$1.Set("$2", $3);
将其放入“替换…”字段

像这样的编号表达式将替换中的$n
作为原始正则表达式中由
(…)
定义并按顺序编号的组的目标

因此,第二行的替换内容如下:

查找:
(此[a-zA-Z0-9\]+)=([a-zA-Z0-9\]+)\[”([a-zA-Z0-9\]+)”\]

替换:
$1=$2.Get($3”)

你可以找到更多关于


顺便说一句,你的字符串太容易了,不能与正则表达式一起使用。正则表达式更有用的用法是查找不完整字符串的模式不仅将取代
datum…
,而且还将取代
hello…
。这太宽泛了,会破坏代码。@GilbertWilliams我的回答对你有帮助吗?如果有,请把它标为答案。