假设我有这个字符串:
"14 be h90 bfh4"
我有这个正则表达式模式:
"(\w+)\d"
在PowerShell中,如何获取内容为{"h", "bfh"}
的数组?
答案 0 :(得分:2)
您想捕获一个或多个字母,后跟一个数字,因此要捕获的正则表达式就是这个,
[a-zA-Z]+(?=\d)
相同的powershell代码将是这样,
$str = "14 be h90 bfh4"
$reg = "[a-zA-Z]+(?=\d)"
$spuntext = $str | Select-String $reg -AllMatches |
ForEach-Object { $_.Matches.Value }
echo $spuntext
免责声明::我几乎不了解Powershell脚本语言,因此您可能需要调整一些代码。
答案 1 :(得分:1)
缩短版本:
@(Select-String "[a-zA-Z]+(?=\d)" -Input "14 be h90 bfh4" -AllMatches).Matches.Value
答案 2 :(得分:1)
如其他答案所示,有多种方法可以给猫皮剥皮。还有一种方法是使用.Net
提供的[regex]
对象
$regex = [regex] '([a-z]+)(?=\d+)'
$regex.Matches("14 be h90 bfh4") | Select Value