我有以下字符串
$str = '$TestSuiteObj | Add-Member -MemberType ScriptMethod Test_volumeval'
我需要移除'$TestSuiteObj | Add-Member -MemberType ScriptMethod
并仅保留Test_volumeval1
我试图将其中的一些截断,但不完整。
$str -replace 'Add-Member -MemberType ScriptMethod',''
如何完全截断并仅在PowerShell中保留Test_volumeval1?
答案 0 :(得分:1)
尝试捕获组
$str -replace '^.*?\s(\w+)$', '$1'
答案 1 :(得分:1)
我建议修剪字符串并用空格分割,然后抓住最后一项:
$str.trim().split(' ')[-1]
但是,如果你想使用正则表达式,你可能只匹配一行中的所有字符,包括最后一个空格,并用空字符串替换它们:
$str.trim() -replace '.*\s', ''
# => Test_volumeval
请参阅regex demo
您也可以使用
$matched = $str.trim() -match '(\S+)\s*$'
并使用$matches[1]
中的值 - 一个或多个非空白字符的最后一个块。