Regex 用于删除word中特殊字符的正则表达式
我有一个值:“VARIABLE=value0”,我只想取等号后面的部分,期望值:“value0”Regex 用于删除word中特殊字符的正则表达式,regex,split,ansible,Regex,Split,Ansible,我有一个值:“VARIABLE=value0”,我只想取等号后面的部分,期望值:“value0” 当最后一个任务完成时,它会打印我:“value0']”(最后还有两个符号)。我的正则表达式对吗?或者如何添加新的正则表达式以删除这两个附加符号“']”?您的正则表达式工作正常。或者,您可以简化它,或者使用拆分过滤器 > cat test.yml - hosts: localhost vars: device_name: "VARIABLE=value0" tasks:
当最后一个任务完成时,它会打印我:“value0']”(最后还有两个符号)。我的正则表达式对吗?或者如何添加新的正则表达式以删除这两个附加符号“']”?您的正则表达式工作正常。或者,您可以简化它,或者使用拆分过滤器
> cat test.yml
- hosts: localhost
vars:
device_name: "VARIABLE=value0"
tasks:
- debug:
msg: "regex_replace 1: {{ device_name | regex_replace('^(.*[\\=/])') }}"
- debug:
msg: "regex_replace 2: {{ device_name | regex_replace('.*=') }}"
- debug:
msg: "split: {{ device_name.split('=')[1] }}"
> ansible-playbook test.yml | grep msg
"msg": "regex_replace 1: value0"
"msg": "regex_replace 2: value0"
"msg": "split: value0"
你可以自己做这个测试来检查你的正则表达式是否正确。如果输出值与您期望的不同,则您的正则表达式不正确。$。[\\=/]\']$它会给出一个错误:“任务执行期间发生异常。若要查看完整的回溯,请使用-vvv。错误为:第1行致命:[127.0.0.1]:失败!=>{“失败”:true,“消息”:“模块执行期间出现意外故障”。,“stdout”“:”“}”您应该在模式中转义
”
,否则字符串文字将被“损坏”。应该匹配的[\\=/]
是什么?您是否尝试转义=
?还是匹配三个字符:\\
,=
和
?
> cat test.yml
- hosts: localhost
vars:
device_name: "VARIABLE=value0"
tasks:
- debug:
msg: "regex_replace 1: {{ device_name | regex_replace('^(.*[\\=/])') }}"
- debug:
msg: "regex_replace 2: {{ device_name | regex_replace('.*=') }}"
- debug:
msg: "split: {{ device_name.split('=')[1] }}"
> ansible-playbook test.yml | grep msg
"msg": "regex_replace 1: value0"
"msg": "regex_replace 2: value0"
"msg": "split: value0"