Vector 中的正则表达式 Regular Expression

一、Vector.dev - Literal expressions

与大多数其他语言一样,在VRL中,字面量即 正如被字面意思解释的那样,被写入的值
字面量包括字符串布尔值整数等。

Literal URL
array https://vector.dev/docs/reference/vrl/expressions/#array
boolean https://vector.dev/docs/reference/vrl/expressions/#boolean
float https://vector.dev/docs/reference/vrl/expressions/#float
integer https://vector.dev/docs/reference/vrl/expressions/#integer
null https://vector.dev/docs/reference/vrl/expressions/#null
object https://vector.dev/docs/reference/vrl/expressions/#object
regular-expression https://vector.dev/docs/reference/vrl/expressions/#regular-expression
string https://vector.dev/docs/reference/vrl/expressions/#string
timestamp https://vector.dev/docs/reference/vrl/expressions/#timestamp

什么是 Literal expressions?
Literal - 字面量。可以翻译为 字面量表达式
关于字面量参考如下文章:
https://baike.baidu.com/item/%E5%AD%97%E9%9D%A2%E/8500322
https://www.jianshu.com/p/4e72452d6771

二、Vector.dev - regular-expression

正则表达式字面理解,就是用于字符串匹配和解析的 Regular Expression
正则表示以 r 印记定义,并使用单引号包含 (r'...')。引号内的值使用 Rust 正则语法

范例:

r'^Hello, World!$'
r'(?i)^Hello, World!$'
r'^\d{4}-\d{2}-\d{2}$'
r'(?P<y>\d{4})-(?P<m>\d{2})-(?P<d>\d{2})'

特征 characteristics

  • Flags
    正则表达式接受 flags。 Flags 可以联合,比如 r'(?ixm)pattern', r'(?im)pattern', 等。
    学习RUST 正则表达式 ,以及VRL扩展,推荐浏览器调试 Rustexp expression editor and tester

Enum options

Option Description
U Swap the meaning of x* and x*?
i Case insensitive
m Multi-line mode
s Allow . to match
u Unicode support (enabled by default)
x Ignore whitespace
  • Named Captures
    正则表达式支持 named capture groups, 允许提取内容绑定到 键(key)。 Named captures 以 ?P<name> 声明。

如下范例:

r'(?P<y>\d{4})-(?P<m>\d{2})-(?P<d>\d{2})'

y, m, and d keys 抓取。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容