3

无论如何在运行时使用 VB.NET 中的 LIKE 运算符区分大小写或不区分大小写?例如,使用标志进行区分大小写或不区分大小写的比较。

显然,这可以通过简单地将它们转换为小写并强制应用程序来完成,Option Compare Binary但也许有更好的方法来做到这一点?

4

2 回答 2

1

我不这么认为。但是,Like如果不区分大小写很重要,您可能无论如何都不应该使用运算符 - 而是使用正则表达式。

Dim re As New System.Text.RegularExpressions.Regex("^.+ough$", System.Text.RegularExpressions.RegexOptions.IgnoreCase)

re.IsMatch("rough") ' True
re.IsMatch("tough") ' True
re.IsMatch("rOUGH") ' True
re.IsMatch("ough")  ' False

有很多要学,但基本上.相当于?,.*相当于*,\d相当于#. 您也必须将其包装起来^$实现等效性。正则表达式功能更强大,可以满足您的需求。

Imports System.Text.RegularExpressions如果您打算大量使用它们,您可能应该添加它们。它们也可以被编译和重用以提高效率。

于 2011-06-24T23:35:38.520 回答
0

Compare Binary即使默认设置为(区分大小写),您也可以提供自定义类以确保获得不区分大小写的比较。您可以Option Compare在代码文件中指定:

Option Compare Text

Public Class CaseInsensitiveLikeOperator
    Public Shared Function IsLike(str As String, pattern As String) As Boolean
        Return str Like pattern
    End Function
End Class

现在这有效:

Dim isSame = CaseInsensitiveLikeOperator.IsLike("foo", "Fo?") ' True

如果您的默认设置是Option Compare Text为了安全起见,您可以提供两个类。

也许最好的选择是学习正则表达式;-)

于 2015-05-20T09:38:01.457 回答