Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex PowerShell:输出正则表达式而不是结果_Regex_String_Powershell_Extract - Fatal编程技术网

Regex PowerShell:输出正则表达式而不是结果

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

好的,长期访客,第一次发布

与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"
只返回“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'