我必须编写一个RegEx来从完整的Windows路径中分割路径和文件名,但我只是不明白......
我现在拥有的是:
(?<Path>.*)(?:\\+)(?:[^\\]*)\\(?<File>.*)$
我的测试路径是:C:\ ProgramFiles \ CONEXANT \ DTSCONFIG \ setup64.exe
输出看起来像这样
${Path} = C:\ProgramFiles\CONEXANT
${File} = setup64.exe
因此,出于任何原因,我的路径的最后一个目录未被提取。
有人可以帮帮我吗?
感谢。
答案 0 :(得分:0)
您在RegEx中间有非捕获组,导致引擎匹配但不捕获。将其更改为:
(?<Path>.*\\(?:[^.]*$)?)(?<File>.*$)?
Splunk正则表达式是PCRE(Perl Compatible Regular 表达式)并使用PCRE C库。
答案 1 :(得分:0)
这适用于您的File
(?<File>[^\\]+\.\w+$)
这适用于您的Path
(?<Path>^.+\\)
...一起
(?<Path>^.+\\)(?<File>[^\\]+\.\w+$)
输出:
${Path}: C:\ProgramFiles\CONEXANT\DTSCONFIG\
${File}: setup64.exe