2014-10-19 28 views
1

我是新來的紅寶石,我使用紅寶石正則表達式爲基於puppet主機的聲明,我試圖寫一個正則表達式匹配服務器與web或dev或soa在結束的主機名,但當我嘗試木偶幹運行我來知道我的服務器atl-dum-db01也匹配在這個正則表達式中。下面是我的問題的輸出如何獲得確切的字符串匹配多個字符串在紅寶石

2.1.2 :123 > "^atl-dum-web01".match(/^atl-dum-[webdevsoa\d]+/) 
=> #<MatchData "atl-dum-web01"> 
2.1.2 :124 > "^atl-dum-db01".match(/^atl-dum-[webdevsoa\d]+/) 
=> #<MatchData "atl-dum-db01"> 

可能有人請幫助我,對不起我的英文不好

在此先感謝=)

回答

2

您使用字符類是錯誤的。內部角色類沒有組,每個角色都單獨匹配。

您需要使用這個表達式爲你的情況:

/^atl-dum-(web|dev|soa)\d+$/ 
+1

謝謝你這麼多Anubhava,這幫助了我很多=) – Tommy 2014-10-19 16:09:24