通过GROK或REGEX从路径获取文件名



如何从grok/regex路径获取应用程序名称?

示例路径:

C:TempLogsMyMainApp.SubApp.App.exe.010519.201123.9320.log

预期输出:

MyMainApp.SubApp.App

注意:

  • 应用程序名称总是以。exe
  • 结尾
  • 路径在目录
  • 方面可能有或多或少的深度测试:

^(.+?)/([w]+.exe)$

C:TempLogsMyMainApp.SubApp.App.exe.010519.201123.9320.log

也尝试了几个类似的选项

对于regex,这应该可以工作(可能需要针对您的特定用例/环境进行一些调整)。

^.*\([^\]+).exe.*

您可以尽可能少地重复以点分隔的单词字符,直到最后一个反斜杠后面的.exe

在捕获组1中

^.*\(w+(?:.w+)*?).exe[^\rn]*$

模式匹配:

  • ^.*\匹配直到最后一次出现
  • (捕获组
    • w+(?:.w+)*?匹配1+字字符,并尽可能重复.和1+字字符的匹配
  • )close group 1
  • .exe[^\rn]*$匹配.exe后面除以外的任何字符,直到字符串
  • 结束

Regex演示