Powershell regex.match()元字符

时间:2015-02-10 17:02:03

标签: .net regex powershell

$reg = [regex]"\bobject-group\b network Gateways[\s\S]*?(?=\nobject-group\b)"

这是我要选择的内容

object-group network something
 network-object host blahblah
 network-object host blahblah
 network-object host blahblah
 network-object host blahblah
object-group network Gateways
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
object-group network baller
 network-object host blahblah
 network-object host blahblah
 network-object host blahblah

我的表达在Regex Tester上工作得很好,但是在Powershell上进行迁移我只能弄清楚哪些元字符是错误的,但我没有得到任何结果。任何帮助都会很棒吗? :)

数据来自文件。并存储在一个文件中。想要的结果是....

object-group network Gateways
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh
     network-object blahblahbalh

1 个答案:

答案 0 :(得分:0)

使用您发布的代码为我工作。我在PowerShell 4.0中,这就是我所做的:

$reg = [regex]"\bobject-group\b network Gateways[\s\S]*?(?=\nobject-group\b)"
$str = @"
object-group network something
 network-object host blahblah
 network-object host blahblah
 network-object host blahblah
 network-object host blahblah
object-group network Gateways
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
object-group network baller
 network-object host blahblah
 network-object host blahblah
 network-object host blahblah
"@

> $($reg.Match($str)).Value
object-group network Gateways
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh
 network-object blahblahbalh