Regex Ruby Puppet正则表达式字符串匹配

Regex Ruby Puppet正则表达式字符串匹配,regex,case,puppet,Regex,Case,Puppet,我对ruby有点陌生,已经做了大量的google搜索,但似乎不知道如何匹配这个特定的模式。我用过,但似乎找不到简单的匹配方法。以下是我想做的: 我有几种类型的主机,它们采用以下形式: 示例主机组 host-brd0000.localdomain host-cat0000.localdomain host-dog0000.localdomain host-bug0000.localdomain 接下来我有一个案例陈述,我想把bug排除在外(谁不对?)。我想做一些类似的事情来匹配一系列的角色。但是

我对ruby有点陌生,已经做了大量的google搜索,但似乎不知道如何匹配这个特定的模式。我用过,但似乎找不到简单的匹配方法。以下是我想做的:

我有几种类型的主机,它们采用以下形式:

示例主机组

host-brd0000.localdomain
host-cat0000.localdomain
host-dog0000.localdomain
host-bug0000.localdomain
接下来我有一个案例陈述,我想把bug排除在外(谁不对?)。我想做一些类似的事情来匹配一系列的角色。但是,它从host-b、host-c、host-d开始匹配,并且只匹配一个字符,就像我做了一个
[brdcatdog]
一样

case $hostgroups {  #variable takes the host string up to where the numbers begin
# animals to keep
             /host-[["brd"],["cat"],["dog"]]/: {
             file {"/usr/bin/petstore-friends.sh":
                owner   => petstore,
                group   => petstore,
                mode    => 755,
                source  => "puppet:///modules/petstore-friends.sh.$hostgroups",
             }
}
我可以做一些类似于
[bcd][rao][dtg]
的事情,但它看起来不太干净,而且会匹配一些我不想要的“坏”、“cot”、“dat”和“crt”之类的废话

是否有一种巧妙的方法来使用我缺少的
\a
[]

谢谢你的帮助


-wootini

使用负前瞻怎么样

host-(?!bug).*

这里是匹配的一切,除了那些讨厌的臭虫这就是你要找的吗

host-(brd|cat|dog)

(以下是gtgaxiola的例子)

非常感谢,是的,这正是我想要的。这对其他一些案例很有帮助,也很感激,但这并不完全是我需要的,因为接下来可能会介绍老鼠和蜘蛛!