Điểm:0

Ansible: trích xuất một chuỗi giữa hai chuỗi

lá cờ lc

Vì vậy, tôi có một tệp html chứa phần sau ở đâu đó ở giữa:

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

Tôi đang cố trích xuất url nhưng tôi gặp một số vấn đề khi thực hiện. Bởi vì "ltr" đó là cái duy nhất tồn tại trong html, nên tôi đã nghĩ ra biểu thức chính này:

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

Sử dụng regex101 tôi đã xác nhận rằng biểu thức regex hoạt động. Tuy nhiên, do cách ansible xử lý các trích dẫn và trích dẫn kép, tôi nghĩ rằng nó có thể gây ra một số vấn đề.

Tôi đang thử nó như thế này:

    - bộ_thực tế:
       regex_test: " {{ htmlres.content | regex_search('(?<=ltr">)(.*)(?=<\/span>)') }}"  

Trong đó htmlres.content là nội dung html nhận được từ một yêu cầu http get được thực hiện trước đó trong cùng một playbook. Tuy nhiên, chạy nó:

    - bộ_thực tế:
       regex_pubdest: " {{ htmlres.content | regex_search('(?<=ltr">)(.*)(?=<\/span>)' }}"
                                                                    ^ ở đây

Có cách nào để khắc phục vấn đề này với các trích dẫn trong biểu thức chính quy trong ansible không? Tôi đã quản lý để đạt được đầu ra mong muốn bằng cách thực hiện điều gì đó hơi khác một chút, đó là:

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

Vấn đề là phần trước chỉ hoạt động khi đọc từ tệp và tôi đang cố gắng tránh lưu html.content vào tệp trước khi chuyển biểu thức chính quy qua tệp. Tôi đã thử thay thế đường dẫn đến thư mục trong grep bằng "{{html.content}}", nhưng rất tiếc, điều đó khiến ansible không chạy chính xác do dấu ngoặc kép.

Bất kỳ ý tưởng?

Cảm ơn bạn!

Michael Hampton avatar
lá cờ cz
Điều gì xảy ra khi bạn đang "chạy nó"? Bạn vừa đăng lại cùng một nhiệm vụ. Tôi nghĩ rằng bạn đã bỏ qua một số văn bản quan trọng.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.