Рейтинг:0

Ansible: извлечение строки между двумя строками

флаг lc

Итак, у меня есть html-файл, который содержит следующее где-то посередине:

<span dir="ltr">http:(...).com</span>

Я пытаюсь извлечь URL-адрес, но у меня возникают некоторые проблемы с этим. Поскольку этот «ltr» — единственный, который существует в html, я придумал это регулярное выражение:

(?<=ltr">)(.*)(?=<\/span>)

Используя regex101, я подтвердил, что регулярное выражение работает. Однако из-за того, как ansible работает с кавычками и двойными кавычками, я думаю, что это может вызвать некоторые проблемы.

Я пытаюсь это сделать так:

    - set_fact:
       regex_test: " {{ htmlres.content | regex_search('(?<=ltr">)(.*)(?=<\/span>)') }}"  

Где htmlres.content — это html-контент, полученный из HTTP-запроса на получение, выполненного ранее в той же книге воспроизведения. Тем не менее, запустив его:

    - set_fact:
       regex_pubdest: " {{ htmlres.content | regex_search('(?<=ltr">)(.*)(?=<\/span>)' }}"
                                                                    ^ здесь

Есть ли способ обойти эту проблему с помощью кавычек в регулярных выражениях? Мне удалось добиться желаемого результата, сделав что-то немного другое, а именно:

 оболочка: grep -oP 'ltr">\K.*?(?=</span>)' /dir/htmlcontent.txt

Проблема в том, что предыдущая работает только при чтении из файла, и я пытаюсь избежать сохранения html.content в файл перед передачей через него регулярного выражения. Я попытался заменить путь к папке в grep на «{{html.content}}», но, к сожалению, это приводит к неправильной работе ansible из-за кавычек.

Любые идеи?

Спасибо!

Michael Hampton avatar
флаг cz
Что происходит, когда вы «запускаете его»? Вы только что перепостили ту же задачу еще раз. Я думаю, вы пропустили какой-то важный текст.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.