You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ansible的regex_replace移除@开头的所有后续字符?

处理Ansible注册变量的字符串截断需求

方法1:使用split过滤器

通过Ansible的split过滤器以@为分隔符拆分字符串,取拆分后的第一个元素即可实现需求:

- name: 提取@符号前的内容
  debug:
    msg: "{{ your_registered_var.msg | map('split', '@') | map('first') | list }}"
  • map('split', '@'):对列表内每个字符串按@拆分,得到['wazuh', '4.3.10-4311']这类子列表
  • map('first'):提取每个子列表的首个元素
  • list:将处理后的结果转换为列表格式

方法2:使用正则表达式替换

利用regex_replace过滤器匹配@及之后的所有字符,将其替换为空字符串:

- name: 用正则截断字符串
  debug:
    msg: "{{ your_registered_var.msg | map('regex_replace', '@.*', '') | list }}"
  • regex_replace', '@.*', '':匹配从@开始到字符串结尾的所有内容,替换为空
  • map遍历列表内每个元素应用该过滤器,最后转为列表

注意:将示例中的your_registered_var替换为你实际使用的注册变量名。

内容的提问来源于stack exchange,提问作者Ciocoiu Petrisor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:01:08