Опять вернулся к той же проблеме. Не пойму, в чем дело...
Есть текст:
Folder: [STAGE]
Workflow: [wf_start_ongoing_workflows] version [1].
Workflow run status: [Running]
Workflow run error code: [0]
Workflow run id [1930496].
Folder: [LOAD_STAGE]
Workflow: [TRANSFN_INTEGN_WF_LOAD_PATIENT_VISIT_CONCAT] version [1].
Workflow run status: [Running]
Workflow run error code: [0]
Workflow run id [1929853].
Folder: [STAGE]
Workflow: [wf_start_ongoing_workflows] version [1].
Workflow run status: [Running]
Workflow run error code: [0]
Workflow run id [1930496].
Folder: [STAGE]
Workflow: [wf_some_other_workflow] version [1].
Workflow run status: [Running]
Workflow run error code: [0]
Workflow run id [1930496].
Мне необходимо:
1. Если в папке CRMRKTNG_STAGE есть запущенные workflow, но не wf_start_ongoing_workflows, то необходимо получить имя этих самых workflow.
Т.е. в данном случае я должен получить wf_some_other_workflow.
Может я действую немного запутанно и можно проще, но как я делаю:
делаю сплит всего текста по "Folder". После этого прохожу по полученному массиву и проверяю, есть ли в этом массиве строка [STAGE] Workflow: [ -- не wf_start_ongoing_workflows-- ]. Если есть, то выбираю то, что находится между квадратными скобками.
Но есть проблема. Не получается сделать проверку на наличие
[STAGE] Workflow: [ -- не wf_start_ongoing_workflows-- ].
Код: Выделить всё
~m/STAGE\][^\[]+Workflow:\s+\[(wf_start_ongoing_workflows)+\]/
Вот так находит как раз те папки, в которых есть wf_start_ongoing_workflows
Соответственно, надо поступать аналогично, но противоположно, чтобы найти другие папки:
Вот так:
Код: Выделить всё
~m/STAGE\][^\[]+Workflow:\s+\[[^(wf_start_ongoing_workflows)]+\]/
- не работает.
Вот так:
Код: Выделить всё
~m/STAGE\][^\[]+Workflow:\s+\[[(wf_start_ongoing_workflows){0}+\]/
- не работает.
В чем проблема? Подскажите