Fluentd Regex:将多个值分组为一个组
Fluentd Regex: Group multiple values in single group
我正在尝试从以下字符串中删除一个字段:
|null|23|2017-07-11T19:03:40.511|Test|PageUnque#MasterCache|123450000||
解析字符串后,结果应该是这样的:
type: null
id: 23
message: 2017-07-11T19:03:40.511|Test|PageUnque#MasterCache
code: 123450000
我尝试使用下面的正则表达式,但它没有按预期工作。
^\|(?<type>.*?)\|(?<id>.*?)\|(?<message>.[^\#]*)\|(?<code>.*?)\|$
如果有更多示例或更多关于每个字段中预期信息的细节,将会有所帮助。我在你的正则表达式中看到的主要问题是你似乎想要捕获“2017-07-11T19:03:40.511|Test|PageUnque#MasterCache”,但你不允许消息捕获组中的“#”字符
(?<message>.[^\#]*)
相反,这就是我所做的。我会注意到我假设代码将只包含数字。 https://regex101.com/r/urC2rj/1
^\|(?<type>.*?)\|(?<id>.*?)\|(?<message>.*)\|(?<code>[0-9]+)\|\|$
我没有在正则表达式中更改它,而是使用“.*?”可能有点冒险,因为它允许您的正则表达式捕获很多东西。根据您的数据,它可能重要也可能不重要。
我正在尝试从以下字符串中删除一个字段:
|null|23|2017-07-11T19:03:40.511|Test|PageUnque#MasterCache|123450000||
解析字符串后,结果应该是这样的:
type: null
id: 23
message: 2017-07-11T19:03:40.511|Test|PageUnque#MasterCache
code: 123450000
我尝试使用下面的正则表达式,但它没有按预期工作。
^\|(?<type>.*?)\|(?<id>.*?)\|(?<message>.[^\#]*)\|(?<code>.*?)\|$
如果有更多示例或更多关于每个字段中预期信息的细节,将会有所帮助。我在你的正则表达式中看到的主要问题是你似乎想要捕获“2017-07-11T19:03:40.511|Test|PageUnque#MasterCache”,但你不允许消息捕获组中的“#”字符
(?<message>.[^\#]*)
相反,这就是我所做的。我会注意到我假设代码将只包含数字。 https://regex101.com/r/urC2rj/1
^\|(?<type>.*?)\|(?<id>.*?)\|(?<message>.*)\|(?<code>[0-9]+)\|\|$
我没有在正则表达式中更改它,而是使用“.*?”可能有点冒险,因为它允许您的正则表达式捕获很多东西。根据您的数据,它可能重要也可能不重要。