使用正则表达式获取文件扩展名

1 regex powershell-2.0

嗨,我需要一个获取路径扩展名的正则表达式,但如果它没有扩展名,则它不显示任何内容或“空白”一词(<-首选输出)

这是我所拥有的,它适用于带有扩展名的路径,但如果路径没有扩展名,当我导出到 CSV 时,我会得到一个完整的路径名

我所拥有的:扩展名 = $matches.fullname -replace '。.(. )','$1'

例子

\Server\ShareFile\RootFolder1.2.3\Folder1.2.3\Subfolder2\Excel.csv

在这种情况下,它只会得到 .csv

\Server\ShareFile\RootFolder1.2.3\Folder1.2.3\Subfolder2\RandomFileNoExtension

在这种情况下,它不会显示任何内容,或者如果可能的话“空白”

zx8*_*x81 6

使用这个正则表达式:

\.[^.]+$
Run Code Online (Sandbox Code Playgroud)

示例用法

if ($filename -cmatch '\.[^.]+$') {
    $extension = $matches[0]
}
Run Code Online (Sandbox Code Playgroud)

解释

  • \. 匹配一个点
  • [^.]+ 匹配不是点的字符
  • $锚断言,我们是在字符串的结束