繁体   English   中英

如何在Visual Studio 2010 RegEx中执行此操作?

[英]How to do this in Visual Studio 2010 RegEx?

我的任务是采用约50个旧的VB6函数和子例程并将其转换为C#。 它们都很简单,我发现大部分工作都是手动编辑-采用类似

Dim rtb As Integer

然后输入

int rtb = 0;

我想到在Visual Studio的“快速替换”对话框中可能有某种方法可以使用正则表达式自动执行此操作。 这个想法是替换第一个表达式的所有实例,其中“ rtb”将是某种通配符,第二个表达式将在指定位置插入该通配符值,但是我不太了解正则表达式,所以不是对我来说很明显

有人可以告诉我这是否可行,并指出Visual Studio版本的regex的正确语法吗?

编辑:我尝试了两个在线转换器, TelerikDeveloperFusion 我粘贴了

Dim FF As Integer
Dim rc As Variant
Dim rtb As Integer

并且在两种情况下都有相同的错误:- 第1行第1行:预计达到EOF
有趣的是,如果我手动输入代码,它们似乎可以正常工作。 我尝试从Visual Basic,Visual Studio和记事本粘贴。 我尝试添加前导或尾随空格,并添加前导crlf,但是除了指定的行和列始终是第一行非空白行外,其他均无效。

没有必要使用为其创建正则表达式的原因,您可以查看代码转换器。

Yoy可以尝试以下方法之一:

developerFusion

Telerik代码转换器

但是它们不能保证输出代码的完整准确性。

  1. 如果可以访问Visual Studio 2008或更早版本,则可以使用内置的VB升级向导将VB6转换为VB.Net。
  2. 然后,您可以使用免费的在线转换器之一,该转换器可以将VB.Net转换为C#(尽管有其局限性)。 例如Telerik

有一些商业工具可以将VB6转换为C#,例如VB迁移合作伙伴VB升级伴侣 ,尽管听起来好像您需要转换的代码量很少,但这可能不值得。

找什么:

Dim [\\ s \\ t \\ r \\ n] +([[^ \\ s \\ t \\ r \\ n] +)[\\ s \\ t \\ r \\ n] + As [\\ s \\ t \\ r \\ n] +整数[\\ s \\ t \\ r \\ n] *;

用。。。来代替:

int $ 1 = 0;

抱歉,正确的表达式不带“;”。 尝试这个:

Dim [\\ s \\ t \\ r \\ n] +([[^ \\ s \\ t \\ r \\ n] +)[\\ s \\ t \\ r \\ n] + As [\\ s \\ t \\ r \\ n] +整数[\\ s \\ t] *

问题是我正在使用VS 2012正则表达式提供解决方案。 在VS 2010中存在一些差异。 例如,您不能使用“ \\ s”来匹配空格,并且结果模式为\\ 1,\\ 2等,而不是$ 1,$ 2等。这应该可以完美地工作:

找什么:

昏暗[\\ t \\ n] +([^ \\ t \\ n] +)[\\ t \\ n] + As [\\ t \\ n] +整数[\\ t \\ n] *

用。。。来代替:

整数\\ 1 = 0;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM