如何测试字符串的格式是否以“ R”开头,后接最多8个数字?
答案 0 :(得分:2)
使用正则表达式很容易做到这一点。
Function testString(ByVal tstStr As String) As Boolean
With CreateObject("VBScript.RegExp")
.Pattern = "^R\d{0,8}$"
.IgnoreCase = False
testString = .test(tstStr)
End With
End Function
如果.test()
与您的tstStr
相匹配, .Pattern
返回一个布尔值。
打破模式^R\d{0,8}$
^
字符串的开头R
与文字R匹配
r
,则可以设置IgnoreCase = True
\d
与数字匹配0-8次{0,8}
$
匹配字符串的结尾由于这是一个函数,因此您可以测试任何输入字符串
Debug.Print testString("R123456")
Rem: Prints 'True'
答案 1 :(得分:1)
请参阅https://theburningmonk.com/2012/05/performance-test-string-contains-vs-string-indexof-vs-regex-ismatch/,了解RegEx为什么不是执行简单任务的最佳选择。
Str = "R12345678"
If Left(Str,1) = "R" then
if IsNumeric(Mid(Str, 2)) then
MsgBox "Match"
End If
End If