⊗pyPmRENPB 71 of 129 menu

วงเล็บที่ไม่เก็บบันทึกใน Regular Expression ของ Python

วงเล็บ ( ) ทำหน้าที่สองอย่าง - การจัดกลุ่มตัวอักษรและหน้าที่เป็น "กลุ่มจับ" (capturing group) แล้ว จะทำอย่างไรถ้าต้องการจัดกลุ่มแต่ ไม่ต้องการเก็บลงกลุ่มจับล่ะ? เพื่อแก้ปัญหานี้ จึงมีการคิดค้น วงเล็บที่ไม่เก็บบันทึก (?: ) ขึ้นมาโดยเฉพาะ - มันทำหน้าที่จัดกลุ่มแต่ไม่เก็บลงกลุ่มจับ

ตัวอย่าง

ในตัวอย่างต่อไปนี้ วงเล็บคู่แรกเราต้องการ สำหรับการจัดกลุ่ม และวงเล็บคู่ที่สอง - สำหรับกลุ่มจับ อย่างไรก็ตาม วงเล็บทั้งสองแบบต่างก็เก็บบันทึก ข้อมูลลงกลุ่มจับ:

txt = 'abab123' res = re.search('(ab)+([1-9]+)', txt)

ผลลัพธ์ในกลุ่มจับของเราจะเป็น ดังนี้:

print(res[0]) # จะได้ 'abab123' print(res[1]) # จะได้ 'ab' print(res[2]) # จะได้ '123'

ตัวอย่าง

มาทำให้วงเล็บคู่แรก ทำหน้าที่จัดกลุ่มเพียงอย่างเดียว แต่ไม่เก็บลงกลุ่มจับ:

txt = 'abab123' res = re.search('(?:ab)+([1-9]+)', txt)

ผลลัพธ์ในกลุ่มจับแรกจะเป็นตัวเลข ของเรา:

print(res[1]) # จะได้ '123'
ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ