Regex powershell正则表达式选择变量中的字符串

Regex powershell正则表达式选择变量中的字符串,regex,powershell-2.0,Regex,Powershell 2.0,我试图创建一个脚本,选择公司计算机主机名中的四个数字 我在一个regex网站上测试了regex'\d{4}',选择这四个数字效果很好。但当与powershell一起使用时,y只能获得$true或$false 我需要将这4个数字保留在一个变量中,以便以后使用,但我尚未实现 有什么想法吗 $machinename = "mac0016w701" $test = $machinename -match '\d{4}' $test2= Select-String -Pattern '\d{4}' -i

我试图创建一个脚本,选择公司计算机主机名中的四个数字

我在一个regex网站上测试了regex
'\d{4}'
,选择这四个数字效果很好。但当与powershell一起使用时,y只能获得$true或$false

我需要将这4个数字保留在一个变量中,以便以后使用,但我尚未实现

有什么想法吗

$machinename = "mac0016w701"
$test = $machinename -match '\d{4}'

$test2= Select-String -Pattern '\d{4}' -inputobject $machinename
$test2

-match
是一个返回真/假的运算符,因此您可以在测试中使用它。如果需要正则表达式中的值,它将设置神奇变量
$Matches
,例如

PS D:\> 'computer1234' -match '\d{4}'
True
PS D:\> $matches[0]
1234
或者,您可以使用:

[regex]::Matches('computer1234', '\d{4}').Value