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

Ansible如何移除字符串末尾的数字字符并将结果存入新变量

Ansible 列表字符串末尾数字移除方案

直接使用Ansible内置的正则替换过滤器即可实现需求,无需额外自定义模块或脚本,处理后的结果可直接存入新变量供后续playbook逻辑调用。


实现代码

你可以直接在playbook中通过如下逻辑定义处理后的变量:

vars:
  fruit: [ 'apple','orange2','grape3apple1']
tasks:
  - set_fact:
      fruit_out: "{{ fruit | map('regex_replace', '\\d$', '') | list }}"

逻辑说明

  • 核心用regex_replace过滤器做正则匹配替换:正则规则\d$只会匹配字符串末尾位置的单个数字,匹配到就替换为空字符串;末尾不是数字的字符串不会触发匹配,会原样保留,完全符合你提出的处理规则。
  • 用map过滤器把替换逻辑批量应用到原列表的每一个元素上,最后加| list是将map返回的迭代器转为标准Ansible列表格式存入变量。

结果验证

执行后打印fruit_out变量,输出和预期完全一致:

fruit_out: [ 'apple','orange','grape3apple' ]

如果你后续有需要移除末尾连续多个数字的需求,只需要把正则规则修改为\\d+$即可,当前规则严格匹配你给出的示例,仅移除末尾1位数字。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:18:35