Ansible regex_replace
Ansible regex_replace
我正在尝试捕获变量的主版本号,为此我正在尝试删除主版本号之后的数字:
在variable.yml
中:
version: 3.9.5
main_version: "{{ version | regex_replace('^.*(..)$', '')}}"
这应该给我 3.9
,但是调试没有给我任何东西。
正确的做法是什么?
(并确保它仍然能够处理诸如 3.10.1
之类的事情,这样 return 一个 main_version
的 3.10
例如 3.10.1-rcblah
,那将 return main_version
of 3.10
)
我猜你的正则表达式应该是这样的:
'^.*(\.[0-9]*)$'
但是你为什么不使用 version_compare
? http://docs.ansible.com/ansible/latest/playbooks_tests.html#version-comparison
我正在尝试捕获变量的主版本号,为此我正在尝试删除主版本号之后的数字:
在variable.yml
中:
version: 3.9.5
main_version: "{{ version | regex_replace('^.*(..)$', '')}}"
这应该给我 3.9
,但是调试没有给我任何东西。
正确的做法是什么?
(并确保它仍然能够处理诸如 3.10.1
之类的事情,这样 return 一个 main_version
的 3.10
例如 3.10.1-rcblah
,那将 return main_version
of 3.10
)
我猜你的正则表达式应该是这样的:
'^.*(\.[0-9]*)$'
但是你为什么不使用 version_compare
? http://docs.ansible.com/ansible/latest/playbooks_tests.html#version-comparison