【发布时间】:2019-03-19 20:36:07
【问题描述】:
创建一个正则表达式以将“新进程名称”的两个部分提取为文件路径和文件名。 请注意,在此示例中:
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
- 有两个目录
- 文件位于 C 盘,且目录名或文件名均不包含空格
但是,其他日志样本可以在任何盘符中包含任意数量的文件路径。在 Windows 中,目录和文件名可以包含空格,并且可以用引号封装。确保您的正则表达式可以捕获任何这些情况。
这是我想出的表达方式。我能够匹配 file_path,但我没有任何运气匹配 file_name。应该使用什么表达式来匹配文件名和文件路径
New Process Name:\t+(?<file_path>\w:*[\\\S|*\S]?.*$).*?(?<file_name>[\w-]+?(?=\.))
【问题讨论】:
-
“文件在 C 盘,目录名或文件名都不包含空格”,但您示例中的第二个目录在 D 盘上并包含空格。你是说模式应该只匹配符合这些条件的文件路径?
-
file_path 正则表达式有效。不是文件名正则表达式
-
在那个 regex101 链接中,
<file_name>组不包含除标签以外的任何模式,因此它不会捕获任何内容。 -
我向您展示了文件路径有效。这是完整的表达式regex101.com/r/5J6ZLh/3
标签: regex regex-group splunk