我正在尝试编写一个可以包含一些风格的正则表达式。主要是这些:
node 'test1000.sov.local' {
include AV::AB
}
或
node 'test1000.sov.local' {
include ZY::ZT::ZZ
include AV::AB
}
或
node 'test1000.sov.local' {
include ZY::ZT::ZZ
include preinstall::global
include AV::AB
}
理论上它可以是节点
下的任意数量的包含这是我试图用来掩盖这个的正则表达式。
node\s'test1000.sov.local'\s{\n+.*\n+}
我也尝试过使用
node\s'morpheustest1000.sov.local'\s{\n*.*\n}
前者不能很好地工作,而后者只会得到一个包括但不包含多个包含。
任何帮助将不胜感激。
答案 0 :(得分:0)
这个表达怎么样:
/((?:node 'test1000\.sov\.local' {)(?:.*)(?:}))/s
<强> Online Demo 强>
/s
会将字符串视为单行。通过此更改, .*
将匹配任何字符,即使是换行符,通常也不会匹配。?:
此处无匹配的组是可选的,但已添加它以使单个组匹配。\.
scape .
也很重要,因为它们在Regex中具有特殊含义。