一、Vector.dev - Literal expressions
与大多数其他语言一样,在VRL中,字面量即 正如被字面意思解释的那样,被写入的值 。
字面量包括字符串
、布尔值
和整数
等。
什么是 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 抓取。
网友评论