嗨我需要一个获取路径扩展的正则表达式,但是如果它没有扩展名它没有显示任何内容或单词“Blank”(< -preferred output)
以下是我对扩展路径有效的方法,但如果路径没有扩展名,我会在导出为CSV时显示完整路径名
我拥有的: Extension = $ matches.fullname -replace'。。(。)','$ 1'
实施例
\服务器\ ShareFile \ RootFolder1.2.3 \ Folder1.2.3 \ Subfolder2 \ Excel.csv
在这种情况下,它只会得到.csv
\服务器\ ShareFile \ RootFolder1.2.3 \ Folder1.2.3 \ Subfolder2 \ RandomFileNoExtension
在这种情况下,它将不会显示任何内容或可能显示“空白”
答案 0 :(得分:2)
使用此正则表达式:
\.[^.]+$
样本使用
if ($filename -cmatch '\.[^.]+$') {
$extension = $matches[0]
}
<强>解释强>
\.
匹配点[^.]+
匹配不是点的字符$
锚点断言我们位于字符串的末尾答案 1 :(得分:0)
您可以在不使用正则表达式的情况下解决此问题。使用[System.IO.Path]::GetExtension($fileName)
。
[System.IO.Path]::GetExtension("README.md")
returns .md
[System.IO.Path]::GetExtension("README")
returns nothing