【发布时间】:2012-10-10 13:47:18
【问题描述】:
我需要将一个 VB6(我不熟悉)项目转换为 C# 4.0 项目。该项目包含一些用于字符串验证的正则表达式。
我需要知道正则表达式在这两种情况下的行为是否相同,所以如果我只是将正则表达式字符串从 VB6 项目复制到 C# 项目,它们的工作方式是否相同?
我对正则表达式有基本的了解,我几乎可以阅读一个正则表达式的功能,但对于口味等,目前这有点超出我的想象。
例如,这两行是否等价?
VB6:
isStringValid = (str Like "*[!0-9A-Z]*")
C#:
isStringValid = Regex.IsMatch(str, "*[!0-9A-Z]*");
谢谢!
【问题讨论】:
-
这完全取决于正则表达式。如果它很简单,它应该可以很好地复制,如果它很复杂,它可能不会。
-
它们很有可能会起作用,但存在许多细微的差异,因此您应该发布一些示例。如果您需要批量转换它们,请考虑投资RegexBuddy。
-
好吧,这更像是一个普遍的问题:正则表达式的工作方式是否相同?如果它取决于正则表达式,那么答案将是:否 :) 但我会发布一个促使我提出这个问题的正则表达式。
-
我认为正则表达式字符串应该可以正常工作。 VB 和 C# 都是 .NET 语言并使用相同的正则表达式“风味”
-
@toadzky:VB6 是 VB 采用 .NET 框架和 Visual Basic .NET 之前的版本。 VB6 和 VB.NET 之间的差异如此之大,应该将它们视为不同的语言,而不是同一语言的版本。
标签: regex c#-4.0 vb6 vb6-migration