정규식 일치에서 마지막 문자 제거 [중복]

Nov 13 2020

파일간에 일부 콘텐츠를 복사하기 위해 ansible 플레이 북을 작업 중입니다. 이를 위해 복사하려는 콘텐츠와 일치하는 정규식을 만들었습니다.

정규 표현식을 테스트하기 위해 var로 간단한 예제를 만들었습니다.

- set_fact:
    the_var: >
            [Java,WBS]
            java    critical 1-
            *ARGS node_name server_name1
            [Java,WBS]
            java    critical 1-
            *ARGS node_name server_name2

- debug:
    msg: "{{the_var}}"

- set_fact:
    my_var: "{{ the_var | regex_search('\\[[J|j]ava(.*)\\[', multiline=True)}}"

- name: Print
  debug:
    var: my_var

이것은 내가 얻는 출력입니다.

TASK [create_app : Print] ****************************************************************************************************
ok: [test_server] => {
    "my_var": "[Java,WBS] \\ java    critical 1- *ARGS node_name server_name1 ["
}

출력에서 마지막 " [ "을 제거하려면 어떻게 해야합니까?

감사

답변

Barmar Nov 13 2020 at 08:40

미리보기 를 사용 하여 문자를 일치 시키되 반환 된 일치 항목에 포함하지 마십시오.

my_var: "{{ the_var | regex_search('\\[[J|j]ava(.*)(?=\\[)', multiline=True)}}"