如何解决在运行时与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
,那么出于安全考虑,您可以提供两个类。
也许最好的选择是学习正则表达式;-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。