Score:1

การลบอักขระเฉพาะออกจากสตริงบน ansible

ธง lc

ฉันมีดังต่อไปนี้

- set_fact:
   test_result: " {{ htmlres.content | regex_search('http://website([0-9]+)', '\1') }}"

เมื่อใช้การดีบัก สิ่งนี้จะคืนค่าต่อไปนี้ " '[01]'"

ต้องการแค่ตัวเลข ฉันได้ทดลองโดยใช้ แทนที่() ฟังก์ชั่นและสามารถถอด [ ] โดยเพิ่มสิ่งต่อไปนี้:

- set_fact:
   test_result: " {{ htmlres.content | regex_search('http://website([0-9]+)', '\1')
| แทนที่ ('[','') | แทนที่(']','') }}"

ปัญหาของฉันตอนนี้คือเอาต์พุตตอนนี้ " '01' และฉันไม่สามารถลบ ' หรือช่องว่าง

การเพิ่ม | ตัดแต่ง ในตอนท้ายด้วยเหตุผลบางอย่างไม่ได้ลบช่องว่างและเพิ่ม regex_search('\'','') ก็ดูจะหนีไม่พ้นคาแร็กเตอร์และผลงาน

ฉันพลาดอะไรไปรึเปล่า?

นี่คือผลลัพธ์จากการดีบักหลังจากการลบครั้งแรก:

"ข้อความ": [
    "'01'",
    ...

ขอบคุณ

Score:1
ธง in

คุณคิดยากเกินไป regex_search() ส่งคืนอาร์เรย์ และคุณต้องการรายการแรก

- set_fact:
    test_result: "{{ htmlres.content | regex_search('http://website([0-9]+)', '\1') | อันดับแรก }}"

ช่องว่างที่จุดเริ่มต้นคือผลลัพธ์ของการมอบหมายของคุณ ผลการทดสอบ:

    test_result: " {{ htmlres.content ...
                  ^--นี่

เพียงแค่ถอดมันออก

Ress avatar
lc flag
ว้าว ฉันไม่ได้สังเกตช่องแรกด้วยซ้ำ ขอขอบคุณสำหรับการชี้แจงว่ามันส่งคืนอาร์เรย์ จับคู่ถูกแล้ว! ขอบคุณ!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา