在运行时与VB.NET LIKE运算符区分大小写(不区分大小写)(不带选项比较)

| 无论如何,在运行时在VB.NET中使用LIKE运算符区分大小写还是不区分大小写?例如,使用标志进行区分大小写或不区分大小写的比较。 显然,可以通过将它们简单地转换为小写并将应用程序强制为“ 0”来实现,但是也许有更好的方法吗?     
已邀请:
        我不这么认为。但是,如果不区分大小写很重要,则无论如何都不应使用
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
有很多东西要学习,但基本上ѭ3to等于
?
,ѭ5to等于
*
\\d
等于
#
。您也必须将其包装在
^
$
中。正则表达式功能强大得多,可以满足您的需求。 如果您打算经常使用它们,可能应该加上ѭ11。它们也可以被编译和重用以提高效率。     
        您可以提供一个自定义类,以确保您获得不区分大小写的比较,即使默认设置为
Compare Binary
(区分大小写)。您可以在代码文件中指定“ 13”:
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
,那么出于安全考虑,您可以提供两个类。 也许最好的选择是学习正则表达式;-)     

要回复问题请先登录注册