正则表达式,使用logstash grok过滤器提取文件路径的一部分

fly*_*ish 5 regex logstash logstash-grok

我是正则表达式的新手,但我认为这里的人可能会给我宝贵的意见.我正在使用logstash grok过滤器,我只能提供正则表达式.

我有这样的字符串

/app/webpf04/sns882A/snsdomain/logs/access.log
Run Code Online (Sandbox Code Playgroud)

我想使用正则表达式sns882A从字符串中获取部分,这是第三个"/"之后的子字符串,我该怎么做?

我被限制为正则表达式,因为grok只接受正则表达式.是否可以使用正则表达式?

CWo*_*ods 6

是的,您可以使用正则表达式通过grok获得您想要的内容:

/[^/]+/[^/]+/(?<field1>[^/]+)/
Run Code Online (Sandbox Code Playgroud)


小智 2

对于你的正则表达式:

    /\w*\/\w*\/(\w*)\/
Run Code Online (Sandbox Code Playgroud)

您还可以测试: http: //www.regextester.com/

通过谷歌搜索正则表达式测试器,您可以拥有不同的用户界面。