如果我比较的字符串中有一个具有通配符,并且通常只是为了格式化,是否可以进行字符串比较。例如
Dim correctFormat as String = "##-##-###-##"
Dim stringToCheck = someClass.SomeFunctionThatReturnsAStringToCheck
If FormatOf(CorrectFormat) = FormatOF(StringToCheck) then
Else
End if
我知道FormatOf的语法,但我只是用它来展示我的要求。
不需要正则表达式。
您可以简单地使用Like
运算符,它支持?
、*
和#
作为通配符,也支持字符列表([...]
、[!...]
)
所以你只需将代码更改为:
If stringToCheck Like correctFormat Then
它将按预期工作。
方法是使用正则表达式-这就是它们的用途。
这是与您发布的格式匹配的正则表达式:
^d{2}-d{2}-d{3}-d{2}$
正如前一篇文章所提到的,您应该为此目的使用正则表达式——它们更适合执行该任务。遗憾的是,学习它们可能会令人困惑,尤其是发现bug可能真的很烦人。我真的很喜欢http://www.regular-expressions.info/和http://regexpal.com/用于以前构建和测试正则表达式。
在VB.net中使用类似reg.ismatch 的东西