Powershell 正则表达式捕获直到 "blank line"

Powershell regex capture until "blank line"

这是当前脚本:

$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:"

之间的所有内容

这是输出的一部分(我希望捕获的部分突出显示)

除了有时输出发生变化并且 "Meta Data:" 不再存在之外,这非常有效。我希望能够捕获到第一个空白行,或者从我突出显示的第一行可能只有 1 space 而没有其他内容。

我尝试使用以下方法捕获直到换行,但它没有用。

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

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

您可以尝试检测双换行的第一个实例(请记住排除 "Cluster" 和 "Cluster Name" 之间的第一个实例),例如:

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

我认为这应该可行:

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