|
楼主 |
发表于 2019-6-27 19:34
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 1059526347 于 2019-6-27 22:11 编辑
问题已解决。贴出一下 套正则的自定义函数
Function RegexpA(字符串 As String, 表达式 As String, Optional 类型 As Integer = 1, Optional 忽略大小写 As Boolean = False) As String
Dim mRegExp As Object '正则表达式对象
Dim mMatches As Object '匹配字符串集合对象
Dim mMatch As Object '匹配字符串
Dim Retu As String
Set mRegExp = CreateObject("Vbscript.Regexp")
With mRegExp
.Global = True 'True表示匹配所有, False表示仅匹配第一个符合项
.IgnoreCase = 忽略大小写 'True表示忽略大小写, False表示区分大小写
.Pattern = 表达式 '匹配字符模式
Set mMatches = .Execute(字符串) '执行正则查找,返回所有匹配结果的集合,若未找到,则为空
End With
If mMatches.Count = 0 Then
RegexpA = ""
Exit Function
End If
If 类型 = 0 Then
For Each mMatch In mMatches
Retu = Retu & mMatch.Value & vbCrLf
Next
RegexpA = Retu
ElseIf 类型 < 0 Then
If mMatches.Count + 类型 < 0 Then 类型 = mMatches.Count * -1
RegexpA = mMatches(mMatches.Count + 类型).Value
Else
If mMatches.Count < 类型 Then 类型 = mMatches.Count
RegexpA = mMatches(类型 - 1).Value
End If
End Function
第三个可选参数[类型]默认值1
|
|