管道作为正则表达式中的分隔符

pipe as delimiter in regular expression

2020-09-16 04:47:49 | info | PHP | BACKEND | 01ARZ3NDEKTSV4RRFFQ69G5FAV | Login not successfully. Please try again

以上是我的示例日志格式,将发送到 fluentd,我做了如下正则表达式:

<parse>
  time_format %Y-%m-%d %H:%M:%S
  expression /^(?<timestamp>(.*?\|))(?<level>(.*?\|))(?<language>(.*?\|))(?<service>(.*?\|))(?<uuid>(.*?\|))(?<message>.*)/
  @type regexp
</parse>

问题是当我渲染那个时,管道 | 包含在字符串中。请让我知道如何忽略或跳过 | 那里?谢谢

只需将 | 移出您的群组:^(?<timestamp>(.*?))\|(?<level>(.*?))\|(?<language>(.*?))\|(?<service>(.*?))\|(?<uuid>(.*?))\|(?<message>.*)

参见:https://regex101.com/r/8rFRPa/2