跳至主要内容

regexall 函数

regexall正则表达式 应用于字符串并返回所有匹配项的列表。

代码块
regexall(pattern, string)

regexallregex 的变体,并使用相同的模式语法。对于给定的 regex 输入,regexall 返回一个列表,该列表的类型与 regex 返回的类型相同,每个匹配项一个元素。也就是说

  • 如果模式根本没有捕获组,则结果为字符串列表。
  • 如果模式具有一个或多个未命名捕获组,则结果为列表的列表。
  • 如果模式具有一个或多个命名捕获组,则结果为映射的列表。

regexall 还可以用于测试特定字符串是否匹配给定模式,方法是测试结果匹配列表的长度是否大于零。

示例

代码块
> regexall("[a-z]+", "1234abcd5678efgh9")
[
"abcd",
"efgh",
]

> length(regexall("[a-z]+", "1234abcd5678efgh9"))
2

> length(regexall("[a-z]+", "123456789")) > 0
false
  • regex 搜索给定模式的单个匹配项,如果未找到匹配项,则返回错误。

如果 OpenTofu 已经有更专门的函数来解析您尝试匹配的语法,请优先使用该函数。正则表达式可能难以阅读,并且可能模糊您的意图,从而使配置更难以阅读和理解。