文档文档

使用正则表达式类型

正则表达式类型表示正则表达式模式。

类型名称regexp

正则表达式语法

Flux 使用 Go 正则表达式实现和语法。此语法类似于 Perl、Python 和其他语言中的正则表达式。正则表达式字面量用正斜杠字符 (/) 括起来。

/^[a-z0-9]+$/

使用正则表达式标志

Flux 支持以下正则表达式标志

标志描述
i不区分大小写
m多行模式:^$ 除了匹配文本的开头/结尾外,还匹配行的开头/结尾
s. 匹配 \n
U非贪婪:交换 x*x*?x+x+? 等的含义

在正则表达式模式的开头包含正则表达式标志,用括号 (()) 括起来,并在前面加上问号 (?)。

/(?iU)foo*/

在谓词表达式中使用正则表达式

要在 谓词表达式 中使用正则表达式,请使用 =~!~ 比较运算符。左操作数必须是字符串。右操作数必须是正则表达式。

"abc" =~ /\w/
// Returns true

"z09se89" =~ /^[a-z0-9]{7}$/
// Returns true

"foo" !~ /^f/
// Returns false

"FOO" =~ /(?i)foo/
// Returns true

将字符串转换为正则表达式

  1. 导入 regexp
  2. 使用 regexp.compile() 将字符串编译为正则表达式类型。
import "regexp"

regexp.compile(v: "^- [a-z0-9]{7}")
// Returns ^- [a-z0-9]{7} (regexp type)

示例

替换所有匹配正则表达式的子字符串

  1. 导入 regexp

  2. 使用 regexp.replaceAllString() 并提供以下参数

    • r:正则表达式
    • v:要搜索的字符串
    • t:替换 r 匹配项的字符串。
import "regexp"

regexp.replaceAllString(r: /a(x*)b/, v: "-ab-axxb-", t: "T")
// Returns "-T-T-"

返回字符串中第一个正则表达式匹配项

  1. 导入 regexp

  2. 使用 regexp.findString() 返回字符串中第一个正则表达式匹配项。提供以下参数

    • r:正则表达式
    • v:要搜索的字符串
import "regexp"

regexp.findString(r: /foo.?/, v: "seafood fool")
// Returns "food"

转义字符串中的正则表达式元字符

如果字符串包含应评估为字面字符的正则表达式元字符,请在将字符串转换为正则表达式之前转义元字符

  1. 导入 regexp
  2. 使用 regexp.quoteMeta() 并提供要转义正则表达式元字符的字符串
import "regexp"

regexp.quoteMeta(v: ".+*?()|[]{}^$")
// Returns "\.\+\*\?\(\)\|\[\]\{\}\^\$"

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像目前一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一款开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 以 Core 的基础为构建,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层级可供非商业家庭或业余爱好者使用。

有关更多信息,请查看