Регулярное выражение для удаления специальных символов в слове - PullRequest
0 голосов
/ 15 января 2019

У меня есть значение: "VARIABLE = value0", и я хотел бы взять только часть после знака равенства, ожидания: "value0".

- name: Settig variable
  set_fact:
    db_name: "{{device_name.stdout_lines}}"

- name:
  set_fact:
    db_name: "{{ db_name | regex_replace('^(.*[\\=/])') }}"

- debug:
    var: db_name

Когда выполняется последнее задание, оно печатает меня: «value0 ']» (с этими двумя дополнительными знаками в конце). Правильно ли мое регулярное выражение? Или как добавить новое регулярное выражение для удаления этих двух дополнительных знаков "']"?

1 Ответ

0 голосов
/ 15 января 2019

Ваше регулярное выражение работает отлично. По желанию вы можете упростить его или использовать разделенный фильтр.

> 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"
...