在OpsWorks中,我試圖測試給定節點的主機名上的數字後綴,並提取該數字,如果它不是1.如果數字不是1 ,我有這樣的正則表達式匹配的數量:OpsWorks紅寶石返回零有效的正則表達式測試
/([\d]+)$/
這是針對符合此模式的節點命名方案運行:
- 節點1
- 節點2
- 節點3
- 節點(N ...)
我已經驗證了這個工程使用Rubular:當我運行這對一個實例與OpsWorks http://rubular.com/r/Ei0kqjaxQn
然而,本場比賽返回nil,不管是什麼號碼主機名在最後。 OpsWorks代理版本是寫作時的最新版本(4023),使用廚師12.13.37。
這是菜譜試圖使用匹配的數字代碼:
short_app_name.to_s + node['hostname'][/([\d]+)$/, 1].to_s + '.' + app['domains'].first
運行失敗,錯誤類型no implicit conversion of nil into String
。但是,在檢查節點的數字後綴時,針對該屬性的正則表達式可以在配方的早期工作。我應該使用不同的方法來提取節點的後綴?
編輯:app['domains'].first
填充。如果與domain.com
換出,該行仍然會失敗,並顯示相同的類型錯誤。
有趣。這不是在我的編輯器(VS代碼)中,但我會刪除表達式並重新輸入它。也許它通過一些副本偷偷溜進去。我馬上回來報告。 – TorpedoBench
這確實是個問題!不知何故,一些無形的破折號已進入我的正則表達式搜索。這個角色是不是在設計的大部分地方顯示?如果不是,我可能會在VS Code GitHub中記錄一個錯誤... – TorpedoBench
我不確定它是否由設計或偶然顯示,它甚至可能只是一個「不支持此字體」類型的交易。 –