擅长:python、mysql、java
<p>另一个选项是ansibles正则表达式过滤器,您可以在这里找到:<a href="https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#regular-expression-filters" rel="nofollow noreferrer">https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#regular-expression-filters</a></p>
<pre><code>vars:
var: dos-e1-south-209334567829102380
tasks:
- debug:
msg: '{{ var | regex_replace("^(.*)-[^-]+$", "\\1") }}'
</code></pre>
<p>结果相同:</p>
<pre><code>"msg": "dos-e1-south"
</code></pre>
<h3>regex的解释:</h3>
<pre><code>^(.*)
</code></pre>
<p>从第一个backreference中的字符串开始保留所有内容</p>
<pre><code>-[^-]+$
</code></pre>
<p>查找最后一个“-”后跟非“-”-”字符,直至字符串结束。</p>
<pre><code>\\1
</code></pre>
<p>用第一个反向引用替换字符串。</p>