替换Visual Studio正则表达式中的文本

本文关键字:文本 正则表达式 Visual Studio 替换 | 更新日期: 2023-09-27 18:16:19

最近我把我的一些旧代码从vb.net转换为C#

我需要改变我所有现有的代码使用visual studio正则表达式(找到&替换Visual studio 2010 IDE中的对话框)

找到<>之前行( 0 ) .Item ( 0 ) .ToString() 之前替换为<>之前行[ 0 ] [ 0 ] .ToString ()

这意味着

<>之前行(——任何——).Item(——任何——).ToString ()来行[—— - - -][——任何——].ToString ()

我搜索了很多,但我仍然无法做到这一点。

提示:我使用的是visual studio 2010

我原来的vb.net代码是

Dim firstColumnValue As String = dataTable.Rows(0).Item("firstColumn")
Dim secondColumnValue As String = dataTable.Rows(0).Item("secondColumn")     

当我将VB.net转换为c#时,我使用这个插件得到了以下内容,我得到了这个。

var firstColumnValue= dataTable.Rows(0).Item("firstColumn").ToString(); 
var secondColumnValue = dataTable.Rows(0).Item("SecondColumn").ToString();

但是我想要的是下面的内容

var firstColumnValue= dataTable.Rows[0]["firstColumn"].ToString(); 
var secondColumnValue = dataTable.Rows[0]["SecondColumn"].ToString();

那vb.net到c#转换工具转换几乎所有的都很好,但我需要在几乎所有的文件上面的变化。

替换Visual Studio正则表达式中的文本

Regex:

Rows'(([^)]*)')'.Item'(([^)]*)')('.ToString'('))

替换字符串:

Rows['1]['2]'3

演示

例子:

string str = "foo bar Rows(0).Item(0).ToString() barfoo";
string result = Regex.Replace(str, @"Rows'(([^)]*)')'.Item'(([^)]*)')('.ToString'('))", "Rows[$1][$2]$3");
Console.WriteLine(result);
Console.ReadLine();

IDEONE

:

Rows'({([^)]*)}')'.Item'({([^)]*)}')('.ToString'('))

替换:

Rows['1]['2]'3

使用说明:

find: Rows({'d*}).Item({'d*}).ToString()

替换为:Rows['1]['2].ToString()

和检查使用正则表达式在搜索/替换窗口

您可以使用Microsoft Visual Studio将代码从VB转换为c#。这个简单的Visual Studio 2010/2012插件允许您将VB.net代码转换为c#

下面的正则表达式解决方案也不是那么完美。例如:圆括号内的函数调用,如"foo bar Rows(0).Item(myfunc(n)).ToString() barfoo";