整个世界的正则表达

时间:2015-06-22 09:22:56

标签: regex c#-4.0 vb6

首先,我使用C#4.0来解析VB6应用程序的代码。
我有一些旧的VB6代码和大约500多个副本。我使用正则表达式从代码中获取各种全局变量。该代码被描述为" Yuck"而一些可怜的受害者仍然需要支持这一点。因此,我希望通过生成特定常量的概述来帮助这个可怜的傻瓜。 (是的,它应该被重写,但它没有被破坏,所以...) 这是我需要匹配的代码行示例,在本例中是所有布尔常量:

Public Const gDemo = False           'Is this a demo version

这是我此时使用的正则表达式:

Public\s+Const\s+g(?'Name'[a-zA-Z][a-zA-Z0-9]*)\s+=\s+(?'Value'[0-9]*)

而且我认为它也是yuckie,因为布尔组末尾的*。但是,如果我不使用它,它只会返回' T'或者' F'。我想要整个字。

这是正确的RegEx用作解决方案还是有更好看的选项?

仅供参考,我使用类似的正则表达式来查找所有字符串常量和所有数字常量。那些工作很好。基本上相同的.BAS文件用于所有50个副本,但所有这些变量的值都不同。通过解析所有文件,我们可以很好地概述每个版本的配置方式 再次,是的,我们需要从头开始重建整个项目,因为这些日子变得更难维护。但它有效,我们需要人力来完成其他任务。它只是偶尔需要调整......

1 个答案:

答案 0 :(得分:2)

您可以使用: Public\s+Const\s+g(?<Name>[a-zA-Z][a-zA-Z0-9]*)\s+=\s+(?<Value>False|True)

demo