首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从VBA中的函数返回RegEx MatchCollection -错误450

错误450是VBA中的一个错误代码,表示“参数不是可选参数”。在这个问题中,它意味着函数返回的数据类型与期望的不匹配。

要从VBA中的函数返回RegEx MatchCollection,您可以使用Microsoft VBScript Regular Expressions库中的RegEx对象。这个库提供了用于在文本中执行正则表达式匹配的功能。

以下是一个示例函数,它接受一个字符串作为输入,并返回一个RegEx MatchCollection:

代码语言:txt
复制
Function GetMatches(inputString As String, pattern As String) As Object
    Dim regex As Object
    Dim matches As Object
    
    Set regex = CreateObject("VBScript.RegExp")
    regex.Global = True
    regex.Pattern = pattern
    
    Set matches = regex.Execute(inputString)
    
    Set GetMatches = matches
End Function

在这个函数中,我们首先创建了一个RegEx对象,并设置了它的Global属性为True,以便在整个输入字符串中执行全局匹配。然后,我们设置了正则表达式的模式。接下来,我们使用Execute方法执行匹配,并将结果存储在一个变量中。最后,我们将这个变量作为函数的返回值。

要使用这个函数,您可以调用它并传递输入字符串和正则表达式模式作为参数。例如:

代码语言:txt
复制
Sub Test()
    Dim inputString As String
    Dim pattern As String
    Dim matches As Object
    Dim match As Object
    
    inputString = "Hello, World! This is a test."
    pattern = "\b\w+\b" ' 匹配单词
    
    Set matches = GetMatches(inputString, pattern)
    
    For Each match In matches
        Debug.Print match.Value
    Next match
End Sub

在这个示例中,我们使用GetMatches函数来查找输入字符串中的所有单词。然后,我们使用For Each循环遍历匹配集合,并打印每个匹配项的值。

请注意,这只是一个简单的示例,用于说明如何从VBA中的函数返回RegEx MatchCollection。实际应用中,您可能需要根据具体的需求进行适当的修改和扩展。

推荐的腾讯云相关产品:腾讯云函数(SCF),腾讯云云开发(CloudBase),腾讯云容器服务(TKE)。

腾讯云函数(SCF)是一种事件驱动的无服务器计算服务,可以让您无需管理服务器即可运行代码。您可以使用SCF来执行各种任务,包括处理HTTP请求、处理数据、执行定时任务等。了解更多信息,请访问:腾讯云函数(SCF)产品介绍

腾讯云云开发(CloudBase)是一种全托管的云原生应用开发平台,提供了丰富的开发工具和服务,包括云函数、云数据库、云存储等。您可以使用CloudBase来快速构建和部署云原生应用。了解更多信息,请访问:腾讯云云开发(CloudBase)产品介绍

腾讯云容器服务(TKE)是一种全托管的容器服务,可以帮助您轻松地部署、管理和扩展容器化应用。您可以使用TKE来运行和管理容器,以及使用Kubernetes进行容器编排。了解更多信息,请访问:腾讯云容器服务(TKE)产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VBA:正则表达式(1) - 基础篇

正则表达式,常被用来检验、替换符合某个模式(规则)的字符串,在代码中常缩写为regexp。VBA中并没有直接提供正则表达式的对象,需要借助VBScript的正则对象。...如果未找到匹配,Execute将返回空的Matches集合。...(2)匹配到的所有对象放在MatchCollection集合中,这个集合对象只有两个只读属性: Count:匹配到的对象的数目; Item:集合的又一通用方法,需要传入Index值获取指定的元素。...一般,可以使用ForEach语句枚举集合中的对象。集合中对象的类型是Match。 (3)Match对象有以下几个只读的属性: FirstIndex – 匹配字符串在整个字符串中的位置,值从0开始。...regex functions(https://juejin.cn/s/excel%20vba%20regex%20functions) [6] 简明Excel VBA(四)正则表达式(Regular

3.3K20
  • 如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理

    在使用 Go 开发的后台服务中,对于错误处理,一直以来都有多种不同的方案,本文探讨并提出一种从服务内到服务外的错误传递、返回和回溯的完整方案,还请读者们一起讨论。...---- 问题提出 在后台开发中,针对错误处理,有三个维度的问题需要解决: 函数内部的错误处理: 这指的是一个函数在执行过程中遇到各种错误时的错误处理。...这是一个语言级的问题 函数/模块的错误信息返回: 一个函数在操作错误之后,要怎么将这个错误信息优雅地返回,方便调用方(也要优雅地)处理。...首先本文就是第一篇:函数内部的错误处理 ---- 高级语言的错误处理机制   一个面向过程的函数,在不同的处理过程中需要 handle 不同的错误信息;一个面向对象的函数,针对一个操作所返回的不同类型的错误...---   下一篇文章是《如何在 Go 中优雅的处理和返回错误(2)——函数/模块的错误信息返回》,笔者详细整理了 Go 1.13 之后的 error wrapping 功能,敬请期待~~ --- 本文章采用

    9.3K151

    字符串处理总结(旧)

    在基本的字符串应用之外,还有一些复杂性相对较高的字符串应用。其中的很多类型出现的概率较高。从本人的经验出发,常常遇到这样一些典型的应用: 1、在较复杂的文本中查找符合某种规律的部分。...比如,要完成HTML代码的匹配,可以通过下面的正则表达式来实现: MatchCollection mas = Regex.Matches(s, "href='(?.*?)'...因此,对于CharTransfer函数,就需要加上一个自定义的转义。...本人在应用中,往往喜欢使用后者,因为后者是可以包含前者的,这种思路在JQuery中也得到了体现,默认情况下,返回的结果都是集合。 三、多个目标的匹配 前述的匹配中,每次匹配,目标往往只有一个。...对于需要特定处理的,可以对返回的串进行进一步的修改加工。

    1K80

    加强版正则表达式,邮箱,手机号防呆好用得不得了

    从被匹配字符串的结束位置向前进行查找匹配,同时,在表达式中也是右侧的表达式先进行匹配。 Extended * 忽略表达式中的空白字符,并且把从 # 开始到该行行末的内容视为注释。...默认情况下,正则表达式中的空格,换行等字符将可以匹配相应的字符。...方法 描述 Execute 该方法用来查找字符串,找到的字符串将通过MatchCollection集合返回。 Replace 这个方法用于替换在正则表达式搜索中找到的文本。...Test Test方法对字符串执行正则表达式搜索,并返回一个布尔值说明匹配是否成功。 Split * 按照指定的表达式字符串对目标字符串进行分割并返回一维数组。...二、NewXing.MatchCollection 对象 MatchCollection 是集合对象,包含有关匹配字符串的信息,该对象包含每个成功匹配的 Match 对象。

    98020

    .NET正则表达式

    第二个方法返回 MatchCollection 对象,该对象对于在分析的文本中找到的每个匹配项包含一个 System.Text.RegularExpressions.Match 对象。...有关使用 Replace 方法更改日期格式和移除字符串中的无效字符的示例,请参阅如何:从字符串中剥离无效字符以及示例:更改日期格式。...对 Regex.Replace 方法的调用会将匹配的字符串替换为 String.Empty;换句话说,将其从原始字符串中移除。 示例 2:识别重复单词 意外地重复单词是编写者常犯的错误。...(单独的 $ 符号将指示正则表达式引擎应尝试在字符串的末尾开始匹配。)为了确保当前区域性设置的货币符号不被错误解释为正则表达式符号,该示例调用 Regex.Escape 方法使该字符转义。...如果找到匹配项,则有关匹配字符串的此部分的信息可以从第二个 Group 对象中检索(该对象位于 GroupCollection 属性所返回的 Match.Groups 对象中)。

    2.1K20

    解读C#中的正则表达式

    NET的regexp类是Perl 5中表达式的一个超集,因此,从理论上说它将作为一个很好的起点。我们还假设你具有了C#的语法和.NET架构的基本知识。   ...Regex类中还包含一些静态的方法:   Escape: 对字符串中的regex中的转义符进行转义;   IsMatch: 如果表达式在字符串中匹配,该方法返回一个布尔值;   Match: 返回Match...的实例;   Matches: 返回一系列的Match的方法;   Replace: 用替换字符串替换匹配的表达式;   Split: 返回一系列由表达式决定的字符串;   Unescape:不对字符串中的转义字符转义...\s*$", "$1"); 这个语句返回字符串abra,其前导和后缀的空格都去掉了。   上面的模式对于删除任意字符串中的前导和后续空格都非常有用。...如果你希望整个过程在匹配abra后结束,就应该从表达式中删除+符号,让regex引擎知道我们只需要对表达式进行匹配。

    1.4K70

    【4】通过简化的正则表达式处理字符串

    常见字符串操作 在基本的字符串应用之外,还有一些复杂性相对较高的字符串应用。其中的很多类型出现的概率较高。从本人的经验出发,常常遇到这样一些典型的应用: 1、在较复杂的文本中查找符合某种规律的部分。...,从技术角度来说,都不是很难的问题。...比如,要完成HTML代码的匹配,可以通过下面的正则表达式来实现: MatchCollection mas = Regex.Matches(s, "href='(?.*?)'...本人在应用中,往往喜欢使用后者,因为后者是可以包含前者的,这种思路在JQuery中也得到了体现,默认情况下,返回的结果都是集合。 多个目标的匹配 前述的匹配中,每次匹配,目标往往只有一个。...)”来表示命名分组的任意串 规则4:通过CommonCode.RegexUtil.GetPattern(s),可以返回通用的模式串 规则5:GetPattern的两个重构函数中,参数中都可以使用(*)和

    1.4K60

    C#中的正则匹配和文本处理

    程序做的第一件事就是创建一个新的Regex 对象并且把要匹配的正则表达式传递给构造函数. str1字符串初始化之后, 程序声明了一个Match 对象matchSet....Match类提供与正则表达式进行匹配的方法。 if 语句使用了一种Match 类的属性Success 来确定是否是成功匹配. 如果值返回为True,那么正则表达式在字符串中至少匹配了一条子串....如果与正则表达式产生了匹配, 那么这种方法就返回True, 否则返回False....为了处理所有找到的匹配可以把匹配存储到MatchCollection对象中....10、正则表达式选项 在指定正则表达式的时候可以设置几个选项. 这些选项的范围从指定多行模式以便正则表达式可以在多行上正确工作, 到编译正则表达式以便能更快速执行.

    2.6K41

    今天同事问我,如何将一串字符串中的数字取出来,此时不用正则表达式,更待何时。。。(Unity3D)

    下表列出了 Regex 类中一些常用的方法: 序号 方法 描述 1 public bool IsMatch( string input ) 指示 Regex 构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项...2 public bool IsMatch( string input, int startat ) 指示 Regex 构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项,从字符串中指定的开始位置开始...4 public MatchCollection Matches( string input ) 在指定的输入字符串中搜索正则表达式的所有匹配项。...6 public string[] Split( string input ) 把输入字符串分割为子字符串数组,根据在 Regex 构造函数中指定的正则表达式模式定义的位置进行分割。...reg = new Regex("\\s+"); Debug.Log(reg.Replace(str, " ")); } } 实例3、 找到字符串中的数字并返回 using

    1.1K10

    正则表达式简介与常用表示

    ","正则表达式");   Matches[在字符串中寻找要查找的内容]的时候,直接写表达式,不需要^$ 4)        字符串替换:Regex.Replace("字符串","匹配的正则","替换的正则...四位数字-两位数字-两位数字   要求:年份必须是19**或者20**,月份必须在01--12,日必须在01-31 下面的写法是错误的,因为|的优先级最低,如果你将并列的选项用括号括起来,判断完数字后,...wc.Encoding = Encoding.UTF8; //从网站下载字符串 string content=wc.DownloadString(path); //要会写正则 MatchCollection...,分析出图片的存储形式 MatchCollection mc = Regex.Matches(str, @"src=""(hotgirls/(\d{2}_\d{2}\.jpg))"""); foreach...(address); //通过观察,分析出图片的存储形式 //要非某一项的话(]+>[^),^一定要用[]括起来 MatchCollection mc = Regex.Matches

    81620

    Excel催化剂开源第24波-较VBA更强大的.Net环境的正则表达式

    在VBA上可以调用正则表达式库,从而编写正则表达式自定义函数,这个相信不少VBA开发者已经熟知,但VBA的VBScript正则表达式库毕竟是一个过时的产品,不像.Net那样是与时俱进的,所以两者实现出来的正则功能还是有区别的...在Excel催化剂的自定义函数开源中,已经对代码作了全公开,此处,只是作一些代码的小小讲解,希望对VBA开发者过渡过来的VSTO开发有些帮助。...配置类,可丰富地控制正则的配置模式 丰富的配置模式 在配置模式中,用|代表多个选项同时成立。...,因为在.net里有更强大的方式,可以精确控制选项的作用范围(无需整个匹配都对区分大小写来生效,可精确控制到哪些字符前中后才控制区分大小写等) Excel催化剂自定义函数只对不能使用内联构造的选项进行参数配置...Excel催化剂自定义函数只对不能使用内联构造的选项进行参数配置 下面的示例使用 i、n 以及 x 选项启用区分大小写和显式捕获,并忽略正则表达式中间的正则表达式模式中的空白。

    66820

    ASP.NET验证控件学习总结与正则表达式学习入门

    --[endif]--> 验证控件基本成员: ControlToValidate – 要进行验证控件ID ErrorMessage – 验证失败时,出现的错误信息 IsValid – 返回布尔值判断控件是否有效...Validate – 验证控件的方法,同时改变IsValid属性 Display– 错误信息的显示方式 None (控件的错误信息在页面中占有肯定位置) Static (控件的错误信息出现时才占用页面控件...ClientValidationFunction指定一个包含在html中的客户端验证函数。OnServerValidate是服务器端验证函数。...当使用Matches()方法时,需要遍历源字符串的每一个位置进行尝试匹配,匹配结束返回一个MatchCollection类型的对象。...2.3      替换 替换主要是从源字符串中,将符合某一规律或规则的子串替换为其它内容。一般来说,在字符串处理中,替换应用也比较广泛。

    2.6K30

    SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易

    RegexMatch 函数可以轻松处理这些动词,因为它们恰好是列表中的其他备选方案。 验证是正则表达式的常见用法,可以验证从电话号码到邮政编码以及自定义帐号数字格式的任何内容。...Regex 类包含 Match 方法,该方法返回您可使用的 MatchCollection。MatchCollection 的问题在于,必须在 Match 方法返回前处理整个字符串。...此函数还可用于未以逗号分隔的列表。也可处理以空格、分号、制表符、回车或任何其他可识别字符分隔的列表。 ? 在匹配项中进行数据提取 类似于返回匹配项,我们还可以从每个匹配项中提取数据。...在图 5 中,RegexGroups 函数定义与 RegexMatches 函数定义一样,除了它还返回匹配项中包含组名称的其他数据列。...为了方便起见,我提供的示例缺乏验证和错误处理,这些是任何生产系统中都应包括的。应验证函数的每个输入并且应由您的要求来确定如何响应 null 或空的字符串输入。

    6.4K60

    C# 正则表达式

    [^aei] "avail" 中的 "v" 和 "l" [ first - last ] 字符范围:与从 first 到 last 的范围中的任何单个字符匹配。...下表列出了 Regex 类中一些常用的方法: 序号 方法 & 描述 1 public bool IsMatch( string input ) 指示 Regex 构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项...2 public bool IsMatch( string input, int startat ) 指示 Regex 构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项,从字符串中指定的开始位置开始...4 public MatchCollection Matches( string input ) 在指定的输入字符串中搜索正则表达式的所有匹配项。...6 public string[] Split( string input ) 把输入字符串分割为子字符串数组,根据在 Regex 构造函数中指定的正则表达式模式定义的位置进行分割。

    1.7K50

    正则表达式来了,Excel中的正则表达式匹配示例

    用于匹配字符串的Excel VBA正则表达式函数 要在Excel中使用正则表达式,需要创建自己的函数。...关于RegExpMatch,你应该知道的三件事 在进行实际计算之前,注意以下几点: 1.该函数可以处理单个单元格或单元格区域。在后一种情况下,结果以动态数组或溢出区域的形式返回到相邻单元格中。...3.如果没有找到有效的模式,则函数返回FALSE;如果模式是无效的,则发生错误#VALUE!。 下面,介绍几个为演示目的而创建的正则表达式匹配示例。...若要在正则表达式匹配时返回或计算某些内容,若不匹配则返回或计算其他内容,将自定义正则表达式匹配函数嵌入if的逻辑文本中: IF(RegExpMatch(…), [value_if_true],[value_if_false...,而无需将任何VBA代码添加到他们的工作簿中,因为在外接程序安装过程中,这些函数可以顺利集成到Excel中。

    22K30
    领券