使用正则表达式类型
正则表达式类型表示正则表达式模式。
类型名称: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
将字符串转换为正则表达式
- 导入
regexp
包。 - 使用
regexp.compile()
将字符串编译为正则表达式类型。
import "regexp"
regexp.compile(v: "^- [a-z0-9]{7}")
// Returns ^- [a-z0-9]{7} (regexp type)
示例
替换所有匹配正则表达式的子字符串
导入
regexp
包。使用
regexp.replaceAllString()
并提供以下参数- r:正则表达式
- v:要搜索的字符串
- t:替换 r 匹配项的字符串。
import "regexp"
regexp.replaceAllString(r: /a(x*)b/, v: "-ab-axxb-", t: "T")
// Returns "-T-T-"
返回字符串中第一个正则表达式匹配项
导入
regexp
包。使用
regexp.findString()
返回字符串中第一个正则表达式匹配项。提供以下参数- r:正则表达式
- v:要搜索的字符串
import "regexp"
regexp.findString(r: /foo.?/, v: "seafood fool")
// Returns "food"
转义字符串中的正则表达式元字符
如果字符串包含应评估为字面字符的正则表达式元字符,请在将字符串转换为正则表达式之前转义元字符
- 导入
regexp
包。 - 使用
regexp.quoteMeta()
并提供要转义正则表达式元字符的字符串
import "regexp"
regexp.quoteMeta(v: ".+*?()|[]{}^$")
// Returns "\.\+\*\?\(\)\|\[\]\{\}\^\$"
此页是否对您有帮助?
感谢您的反馈!