在文件中,我有很多这样的行
Nom de l'objet : C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico
我只想要文件扩展名(此处为ico)。某些扩展名可能包含3个以上的字符。 使用awk,我可以做,但是在powershell中... 感谢您的帮助。
答案 0 :(得分:3)
而不是使用RegEx,为什么不使用[System.IO.Path]类来获取扩展名:
$str = "Nom de l'objet : C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico"
$filename=($str -split ':',2)[1]
[System.IO.Path]::GetExtension($filename)
答案 1 :(得分:2)
使用一些正则表达式:
$str = "Nom de l'objet : C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico"
$str -match "\.(.{3,})$"
$extension = $Matches[1]
$extension #ico
\.(.{3,})$
匹配行末尾最后一个点之后的至少3个字符。
答案 2 :(得分:1)
$str = "Nom de l'objet : C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico"
if ( $str.LastIndexOf(".") -gt -1 ) {
$str.Substring($str.LastIndexOf(".") + 1)
}
# Outputs "ico"