Powershell正则表达式捕获直到“空行”

时间:2015-01-22 20:07:20

标签: regex powershell

这是当前的脚本:

$VPLEX = plink 192.168.1.235 -l service -pw Mi@Dim7T ./health

$regex = '(?ms)Clusters:(.+?)Meta Data:'
$VPLEX = $VPLEX -join "`r`n"
$VPLEX_Clusters = [regex]::Matches($VPLEX,$regex) | foreach {$_.groups[1].value}

这成功捕获了“Clusters:”和“Meta Data:”

之间的所有内容

这是输出的一部分(我想要捕捉的部分突出显示) enter image description here

除非有时输出更改且“元数据:”不再存在,否则此操作非常有效。我希望能够捕捉到第一个空白行,或者我突出显示可能只有1个空格的第一行,而不是别的。

我尝试使用以下内容捕获到换行符,但它不起作用。

 $regex = '(?ms)Clusters:(.+?) \n'

任何帮助都会很棒,这可能比我想象的要简单。

2 个答案:

答案 0 :(得分:2)

我认为这应该有效:

$regex = '(?ms)Clusters:(.+?)\r\n\s*\r\n'

答案 1 :(得分:0)

你可以尝试检测双线的第一个实例(记得排除“Cluster”和“Cluster Name”之间的第一个实例),如:

$regex = '(?ms)(Clusters:.+?Cluster.+?)[\n\r]{2,}\s*[\n\r]'