⊗pyPmREMSP 58 of 129 menu

การใช้กรุ๊ปแทนที่ในสตริง replacement ใน Python

เมื่อทำงานกับเมธอด sub หากต้องการนำเนื้อหาจากกรุ๊ปใน regular expression ไปใช้ ในสตริง replacement คุณสามารถแทรกเนื้อหาของกรุ๊ปนั้นโดยใช้แบ็กสแลชคู่ \ ตามด้วยหมายเลขกรุ๊ป ตัวอย่างเช่น \1 - คือกรุ๊ปแรก, \2 คือกรุ๊ปที่สอง และเป็นต้นไป

เพื่อให้เข้าใจความจำเป็นและวิธีการใช้งาน ลองมาดูจากตัวอย่างกัน

ตัวอย่าง

ลองหาตัวเลขทั้งหมดและแทนที่ตัวเลขเหล่านั้น ด้วยตัวเลขเดียวกันแต่อยู่ในวงเล็บกลม เพื่อทำสิ่งนี้ เราจะแทนที่ตัวเลขทั้งหมดที่พบด้วย ตัวเลขเดียวกันแต่อยู่ในวงเล็บ:

txt = '1 23 456 xax' res = re.sub('(\d+)', '(\1)', txt) print(res)

ผลลัพธ์ที่ได้ในตัวแปรจะเป็น ดังนี้:

'(1) (23) (456) xax'

ตัวอย่าง

ลองหาสตริงทั้งหมดที่แทน ตัวเลขที่มี 'x' อยู่รอบด้าน และแทนที่ตัวเลขเหล่านั้น ด้วยตัวเลขเดียวกัน แต่มีเครื่องหมาย '!' อยู่รอบด้าน:

txt = 'x1x x23x x456x xax' res = re.sub('x(\d+)x', '!\1!', txt) print(res)

ผลลัพธ์ที่ได้ในตัวแปรจะเป็น ดังนี้:

'!1! !23! !456! xax'

ตัวอย่าง

ลองแก้ปัญหาต่อไปนี้: ให้สตริง 'aaa@bbb ccc@ddd' - ตัวอักษร ตามด้วยเครื่องหมาย @ ตามด้วยตัวอักษรอีกครั้ง ต้องสลับตำแหน่ง ตัวอักษรในส่วนของสตริง 'aaa@bbb' ก่อน '@' และหลัง:

txt = 'aaa@bbb ccc@ddd' res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt) print(res)

ผลลัพธ์ที่ได้ในตัวแปรจะเป็น ดังนี้:

'bbb@aaa ccc@ddd'

โจทย์ฝึกปฏิบัติ

ให้สตริง:

txt = '12 34 56 78'

สลับตำแหน่งตัวเลขในตัวเลขสองหลักทั้งหมด

ให้สตริงวันที่:

txt = '31.12.2025'

แปลงวันที่นี้เป็น '2025.12.31'

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ