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

时间:2016-07-01 03:42:15

标签: regex powershell-v2.0

我正在尝试创建一个脚本,用于选择公司计算机在主机名中拥有的四个数字。

我在正则表达式网站上测试了正则表达式'\d{4}',它可以正常选择四个数字。但是当它与powershell一起使用时,只能获得$ true或$ false。

我需要将4个数字保存在变量中供以后使用,但我还没有实现。

任何想法??

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

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

1 个答案:

答案 0 :(得分:1)

-match是一个返回true / false的运算符,因此您可以在测试中使用它。如果你想要正则表达式的值,它会设置魔术变量$Matches,例如

PS D:\> 'computer1234' -match '\d{4}'
True
PS D:\> $matches[0]
1234

或者,您可以使用:

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