返回

excel-VBA将唯一的正则表达式附加到字符串变量

发布时间:2022-05-30 05:52:39 255

如何从字符串中获取匹配的正则表达式,删除重复项,并将它们附加到一个字符串变量中,每个变量用逗号分隔?

例如,在字符串中,“这是所需正则表达式的示例:BPOI-G8J7R9、BPOI-G8J7R9 和 BPOI-E5Q8D2”所需的输出字符串将为“BPOI-G8J7R9,BPOI-E5Q8D2”

我试图使用字典来删除重复项,但我的功能是吐出可怕的 #Value 错误。

谁能看到我要去哪里错了?或者有什么建议可以更好地完成这项任务?

下面的代码:

Public Function extractexpressions(ByVal text As String) As String
Dim regex, expressions, expressions_dict As Object, result As String, found_expressions As Variant, i As Long

Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "[A-Z][A-Z][A-Z][A-Z][-]\w\w\w\w\w\w"
regex.Global = True

Set expressions_dict = CreateObject("Scripting.Dictionary")

If regex.Test(text) Then
    expressions = regex.Execute(text)
End If

For Each item In expressions
    If Not expressions_dict.exists(item) Then expressions_dict.Add item, 1
Next

found_expressions = expressions_dict.items

result = ""

For i = 1 To expressions_dict.Count - 1
    result = result & found_expressions(i) & ","
Next i

extractexpressions = result

End Function
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
相关帖子