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

Ansible正则提取路径时排除软链指向后缀的实现方案

你现有正则的问题在于(/path/.+)中的.贪婪匹配逻辑会将后续的 -> /some/file也纳入捕获组范围,最终导致替换后仍携带多余后缀。

直接修改正则匹配规则即可实现需求:

- debug:
    msg: "{{ list1 | map('regex_replace', regxp, bckref) | list }}"
  vars:
    regxp: '^.* (/path/[^ ]+)(?: ->.*)?$'
    bckref: '\1'

正则规则说明:

  • ^.* 匹配行首到目标路径前最后一个空格的所有内容
  • (/path/[^ ]+) 捕获以/path/开头、直到第一个空格为止的所有字符(路径本身不含空格,不会误匹配后续内容)
  • (?: ->.*)?$ 匹配可选的软链指向后缀,?:标记为非捕获组不参与替换,?标识该部分可不存在,兼容普通文件、目录的行格式

运行后即可得到你预期的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:24:03