Function ExtractString(inputString As String, pattern As String, Optional order As Integer = 0, Optional matchType As Boolean = True, Optional submatchorder As Integer = 0) As String
'inputString:表示提取的字符
'pattern:提取的规则
'order(可选参数):提取的数据的序号,默认为0
'matchType(可选参数):是否有分组的数据(提取),默认不提取
'submatchorder(可选参数):提取分组的序号,默认为0
Dim regex As Object
Dim matches As Object
Dim match As Object
' 创建 RegExp 对象
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True ' 匹配所有出现
.IgnoreCase = True ' 忽略大小写
.pattern = pattern ' 正则表达式模式
End With
' 执行匹配操作
Set matches = regex.Execute(inputString)
' 检查是否有匹配结果
If matches.Count > 0 Then
' 提取第一个匹配结果
Set match = matches.Item(order)
If matchType Then '根据传入的参数,判断是否提取分组数据
ExtractString = match.Value
ExtractString = match.SubMatches(0) '提取分组的数据
End If
' 没有匹配结果
ExtractString = ""
End If
' 清理对象
Set regex = Nothing
Set matches = Nothing
Set match = Nothing
End Function
regex:
^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
该正则表达式可以用于验证常见的邮箱地址格式,包括用户名部分和域名部分。
匹配手机号码:
regex:
^1[3456789]\d{9}$
该正则表达式可以用于验证中国大陆的手机号码,满足11位数字,以1开头。
匹配日期(YYYY-MM-DD):
regex:
^\d{4}-\d{2}-\d{2}$
该正则表达式可以用于验证标准的日期格式,如"2023-06-30"。
匹配IP地址:
regex:
^(\d{1,3}\.){3}\d{1,3}$
该正则表达式可以用于验证IPv4地址,如"192.168.0.1"。
匹配URL:
regex:
^(https?|ftp)://[^\s/$.?#].[^\s]*$
该正则表达式可以用于匹配URL,支持以"http://"或"https://"或"ftp://"开头的URL。