2016-07-01 32 views
0

我想创建一个脚本,选择公司计算机在主机名中的四个数字。powershell正则表达式选择字符串变量

我在一个正则表达式网站测试了正则表达式'\d{4}',它可以很好地选择四个数字。但是在PowerShell中使用它时只会得到$ true或$ false。

我需要这4个数字在变量中保留以备后用,但我没有实现它。

任何想法??

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

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

回答

1

-match是返回真/假操作,这样你就可以在测试中使用它。如果你想要来自正则表达式的值,它设置魔术变量$Matches,例如,

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

或者,你可以使用:

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