[英]Powershell to get a DLL name out of it's full path
我有一个字符串“ .... \\ xyz \\ abc \\ 0.0 \\ abc.def.ghi.jkl.dll”试图使用Powershell将“ abc.def.ghi.jkl.dll”的值转换为变量。
我对regex和PS完全陌生,对如何完成此操作感到困惑。 我阅读了有关正则表达式的各种文章,但无法正常工作
这是我的代码,
$str = "..\..\xyz\abc\0.0\abc.def.ghi.jkl.dll"
$regex = [regex] '(?is)(?<=\b\\b).*?(?=\b.dll\b)'
$result = $regex.Matches($str)
Write-Host $result
我想将“ abc.def.ghi.jkl.dll”放入$ result。 有人可以帮我吗
您可以使用以下正则表达式:
(?is)(?<=\\)[^\\]+\.dll\b
无需使用Matches
,只需使用-match
(或Match
)。
说明 :
(?<=\\\\)
-确保在字符串的当前位置之前有一个\\
[^\\\\]+
-匹配\\
以外的1个或更多字符 \\.dll\\b
匹配一个.
符号,后跟3个字母dll
,后跟尾随单词边界。 电源外壳:
$str = "..\..\xyz\abc\0.0\abc.def.ghi.jkl.dll"
[regex]$regex = "(?is)(?<=\\)[^\\]+\.dll\b"
$match = $regex.match($str)
$result = ""
if ($match.Success)
{
$result = $match.Value
Write-Host $result
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.