Puncte:0

Ansible: extragerea unui șir între două șiruri

drapel lc

Deci am un fișier html care conține următoarele undeva la mijloc:

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

Încerc să extrag adresa URL, dar întâmpin unele probleme în a face acest lucru. Deoarece acel „ltr” este singurul care există în html, am venit cu acest regex:

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

Folosind regex101 am confirmat că expresia regex funcționează. Cu toate acestea, din cauza modului în care ansible se ocupă de ghilimele și ghilimele duble, cred că poate cauza unele probleme.

Incerc asa:

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

Unde htmlres.content este conținutul html primit de la o solicitare http get făcută anterior în același manual. Cu toate acestea, rulați-l:

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

Există vreo modalitate de a ocoli această problemă cu ghilimele în regex în ansible? Am reușit să obțin rezultatul dorit făcând ceva ușor diferit, care este următorul:

 shell: grep -oP 'ltr">\K.*?(?=</span>)' /dir/htmlcontent.txt

Problema este că anterioară funcționează numai atunci când citesc dintr-un fișier și încerc să evit să salvez conținutul html. într-un fișier înainte de a trece un regex prin el. Am încercat să înlocuiesc calea către folderul din grep cu „{{html.content}}”, dar, din păcate, asta face ca ansible să nu ruleze corect din cauza ghilimelelor.

Vreo idee?

Mulțumesc!

Michael Hampton avatar
drapel cz
Ce se întâmplă când îl „exerciți”? Tocmai ai repostat din nou aceeași sarcină. Cred că ai omis un text important.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.