跳到主要内容 跳到补充内容

IndexRegExGroup - 脚本和图表函数

IndexRegEx() 搜索输入字符串,并返回指定的复合正则表达式模式第 n 次出现的起始位置。可选的第四个参数 count 用于提供 n 的值,如果省略,则值为 1。字符串中的位置从左至右从 1 开始编号。如果没有找到匹配项,函数返回 0。

该函数执行大小写敏感的正则表达式操作。您也可以用变种 IndexRegExGroupI() 来作为替代,执行不区分大小写的正则表达式操作。

语法:  

IndexRegExGroup (text, regex, group [, count])

返回数据类型: 整数

参数
参数 描述
text 要搜索正则表达式的输入字符串文本。
regex 用于搜索输入字符串的正则表达式。
group

在复合正则表达式的情况下,组的编号。

0 值为 group 则返回整个正则表达式的索引。但是,如果正则表达式只需要返回整个匹配的索引,则可以使用 IndexRegEx() 函数。

您可以指定一个负 group 值,从右向左搜索匹配项。

count

匹配的编号。当正则表达式在文本中可能有多个匹配项时,这个功能非常有用。例如,指定 4 搜索第四个匹配项的位置。

这是可选参数。如果未指定,默认为 1。您可以指定一个负值,从右向左搜索匹配项。

函数示例
示例 结果
IndexRegExGroup('abc123','([a-z])([0-9]+)',0) 返回 3(完整正则表达式的起始位置)。
IndexRegExGroup('abc123','([a-z])([0-9]+)',1) 返回 3(第一个群组的起始位置)。
IndexRegExGroup('abc123','([a-z])([0-9]+)',2) 返回 4 ,即第二个群组的起始位置。在输入的正则表达式模式中,字符串 ([0-9]+) 与第二群组相对应。
IndexRegExGroup('ABC123','([a-z])([0-9]+)',1) 返回 0 ,因为 IndexRegExGroup() 区分大小写。
IndexRegExGroupI('ABC123','([a-z])([0-9]+)',1) 返回 3。使用不区分大小写的函数变体,IndexRegExI()

适用场景

该函数的用例包括:

  • 识别大段文字中出现特定文字模式的位置。例如,您可能想知道在一系列长电子邮件中使用电子邮件地址的域位置。

  • IndexRegExGroup() 对高级数据处理特别有用,常用于较长、较复杂转换的第一步。使用其他正则表达式函数(如 ExtractRegExGroup()MatchRegEx()CountRegEx())通常更容易解决问题,但有时 IndexRegExGroup() 可能会提供这些函数无法提供的解决方案。

例 1 - 加载脚本以查找 ISBN 部件的位置

例 2 - 通过图表表达式查找 URL 位置(与 IndexRegEx() 比较)

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!