从 Windows 中提取路径和文件名的正则表达式

RegEx to extract Path and Filename from a Windows

我必须编写一个 RegEx 来从完整 windows 路径中拆分路径和文件名,但我就是不明白...

我现在拥有的是:

(?<Path>.*)(?:\+)(?:[^\]*)\(?<File>.*)$

我的测试路径是:C:\ProgramFiles\CONEXANT\DTSCONFIG\setup64.exe

输出看起来像这样

${Path} = C:\ProgramFiles\CONEXANT
${File} = setup64.exe

所以出于任何原因,我的路径的最后一个目录没有被提取。

有人可以帮帮我吗?

谢谢。

您在 RegEx 中间有非捕获组,这导致引擎匹配但不捕获。将其更改为:

(?<Path>.*\(?:[^.]*$)?)(?<File>.*$)?

Splunk regular expressions are PCRE (Perl Compatible Regular Expressions) and use the PCRE C library.

这应该适用于您的 File

(?<File>[^\]+\.\w+$)

这应该适用于您的 Path

(?<Path>^.+\)

一起...

(?<Path>^.+\)(?<File>[^\]+\.\w+$)

输出:

${Path}: C:\ProgramFiles\CONEXANT\DTSCONFIG\

${File}: setup64.exe