哪种正则表达式最适合提取Windows文件名和文件路径?

时间:2019-03-19 20:36:07

标签: regex regex-group splunk

创建一个正则表达式以提取“新进程名称”的两个部分作为file_path和file_name。 请注意,在此示例中:

Process Information:
New Process ID:     0x8609
New Process Name:   C:\Windows\System32\example_c.exe
New Process Name:   D:\Intel\Logs\User\Tom Warner\logs.txt
  1. 有两个目录
  2. 该文件位于C驱动器中,目录名或文件名均不包含空格

但是,其他日志样本在任何字母驱动器内可以具有任意数量的文件路径。在Windows中,目录和文件名允许包含空格,并可以用引号引起来。确保您的正则表达式可以捕获任何这些情况。

这是我想出的表达方式。我可以匹配file_path,但是我没有与file_name匹配的运气。应该使用什么表达式来匹配file_name和file_path

New Process Name:\t+(?<file_path>\w:*[\\\S|*\S]?.*$).*?(?<file_name>[\w-]+?(?=\.))

1 个答案:

答案 0 :(得分:0)

New Process Name:\t+(?<file_path>\w:.*?)(?<file_name>[^\\]+)$

(?<file_path>\w:.*?创建组名file_path


\w:与驱动器号匹配。 Windows驱动器路径通常是字母


.*?匹配驱动器号后的所有内容


(?<file_name>[^\\]+)$创建组名file_name [^\\]+的含义不等于\,这允许正则表达式接受所有信息,直到看到最后一个\