定义节点。调整正则表达式以排除某些节点

问题描述 投票:0回答:1

我正在制作人偶中的节点定义。需要很少的正则表达式帮助。当前这是我正在使用的

node /^[d][e][v]-\d{6}-[0-9][1-9][a|b].test-cloud.prod.puppet$/

我希望人偶不要使用具有01a01b的证书运行其目录。如下图所示。

((我不希望Puppet在具有这些证书的计算机上运行)

dev-123456-01a.test-cloud.prod.puppetdev-999999-01b.test-cloud.prod.puppetdev-000001-01a.test-cloud.prod.puppet

(木偶需要在具有这些证书的计算机上运行)

dev-123456-02a.test-cloud.prod.puppetdev-999999-11b.test-cloud.prod.puppetdev-000001-03a.test-cloud.prod.puppet

我希望我的解释现在很清楚。可能有一个简单的解决方案,但无法解决。

ruby puppet
1个回答
0
投票

类似这样的事情应该可以解决:

/^dev-\d{6}-(?!01[ab])[0-9][1-9][a-z]\.test-cloud\.prod\.puppet$/

regex graph

这仍然允许通用正则表达式[0-9][1-9][a-z],但不包括01a01b在前面(带有(?!01[ab]))。原因是要保持正则表达式保持清洁。替代方法是类似(01[c-z]|(0[2-9]|[1-9][1-9])[a-z])而不是(?!01[ab])[0-9][1-9][a-z],这很难维护。

请注意,[0-9][1-9]确实排除了00(我相信这是您的意图),但也排除了2030,... 90可能不是您的意图。

© www.soinside.com 2019 - 2024. All rights reserved.