2016-06-10 121 views
2

在劇本中,我嘗試提取變量「ansible_hostname」的最後一個字符。用ansible和regex_replace過濾器提取字符串的最後一個字符

我嘗試使用regex_replace過濾器來做到這一點,但沒有任何工作。

我簡化我的一段腳本與此自組織命令:

ansible本地主機-m調試-a「MSG = {{ 'devserver01' | regex_replace('[0-9] {1 }'''''''1})}「

我想提取最後一個字符:'1'。

我正在使用Ansible 2.0。

+0

您想提取''1' devserver01'? – CinCout

+0

看起來你正確地匹配了最後一個字符'(\ d)$',但是你用自己替換了'1',所以沒有影響? – micker

+0

是的,我知道,我遠離正則表達式大師:) – Antoine

回答

5

Python可以節省一天,並且在這種使用中可以接受。

只需在字符串或變量的末尾添加一個[-1],即可獲取字符串中的最後一個字符。

ansible localhost -m debug -a "msg={{ 'devserver01'[-1] }}" 
+0

完美謝謝 – Antoine

-1

以下內容適用於您。

ansible localhost -m debug -a "msg= {{ 'devserver01' | regex_replace('^(.+)([0-9]{1})$','\\1') }}" 

說明:

^(.+) : it will take one or more group of characters from start 
([0-9]{1})$ : removes one digit from end of string 

\\1 : is a back reference to the first group 
相關問題