Regex PowerShell:输出正则表达式而不是结果
好的,长期访客,第一次发布 与PowerShell告诉我正则表达式的结果是“True”或“False”不同,我想要的是字符串。我知道还有其他方法可以做到这一点,我已经有了一个工作版本,但我想使用正则表达式来“提取”字符串 例如:Regex PowerShell:输出正则表达式而不是结果,regex,string,powershell,extract,Regex,String,Powershell,Extract,好的,长期访客,第一次发布 与PowerShell告诉我正则表达式的结果是“True”或“False”不同,我想要的是字符串。我知道还有其他方法可以做到这一点,我已经有了一个工作版本,但我想使用正则表达式来“提取”字符串 例如: $ipconfig = ipconfig | select-string "IPv4" | select-object -first 1 $ipconfig -match "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b" 只返回“Tru
$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
$ipconfig -match "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b"
只返回“True”,而不是我想要的IP地址
有没有一种方法可以使用正则表达式来实现这一点
谢谢 您已经获得了它,只需检查免费获得的变量:
$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
if ($ipconfig -match "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b") {
$matches[0]
}
或者,您可以使用.NET对象:
$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
([regex]"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b").matches($ipconfig) | % { $_.value }
享受:)您已经获得了它,只需检查免费获得的变量:
$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
if ($ipconfig -match "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b") {
$matches[0]
}
或者,您可以使用.NET对象:
$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
([regex]"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b").matches($ipconfig) | % { $_.value }
享受:)使用-替换:
$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
$ipconfig -replace '.*\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b.*','$1'
使用-替换:
$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
$ipconfig -replace '.*\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b.*','$1'