⊗jsSpREEP 129 of 294 menu

กลุ่มจับในตัว Regular Expression เองใน JavaScript

เนื้อหาของกลุ่มจับสามารถใช้งานได้ไม่เพียงแต่ใน สตริงสำหรับการแทนที่ แต่ยังสามารถใช้ในตัว Regular Expression เองได้: เรา สามารถเก็บบางสิ่งไว้ในกลุ่มจับ แล้วหลังจากนั้น ภายใน Regular Expression นั้นสามารถระบุได้ว่า ตรงนี้ควรมี เนื้อหาของกลุ่มจับนั้น

เนื้อหาของกลุ่มจับสามารถอ้างอิงได้โดยใช้หมายเลขของกลุ่มจับ โดยมีเครื่องหมายแบ็กสแลชนำหน้า ตัวอย่างเช่น กลุ่มจับแรกจะสามารถอ้างอิงได้ดังนี้: \1 กลุ่มจับที่สองดังนี้ - \2 กลุ่มที่สาม - \3 และต่อๆ ไป

ฉันมั่นใจว่าทุกสิ่งที่เขียนมาข้างต้นคงยังคง คลุมเครือสำหรับคุณอยู่มาก นั่นไม่น่าแปลกใจ เพราะ กลุ่มจับเป็นส่วนที่เข้าใจได้ยากที่สุด ของ Regular Expression มาลองทำความเข้าใจจากตัวอย่างกัน

ตัวอย่าง

สมมติว่าเรามีสตริงดังนี้:

let str = 'aa bb cd ef';

ลองหาในสตริงนี้ทุกตำแหน่งที่มี ตัวอักษรสองตัวใดๆ ที่เหมือนกันเรียงกัน สำหรับการแก้ปัญหา เราจะค้นหาตัวอักษรใดๆ เก็บมันไว้ในกลุ่มจับ แล้วตรวจสอบว่าตัวอักษร ถัดไปเป็นเนื้อหาของกลุ่มจับนี้หรือไม่:

let res = str.replace(/([a-z])\1/g, '!');

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

'! ! cd ef'

ตัวอย่าง

สมมติว่าเรามีสตริงดังนี้:

let str = 'asxca buzxb csgd';

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

let res = str.replace(/([a-z])[a-z]+\1/g, '!');

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

'! ! csgd'

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

กำหนดสตริง:

let str = 'aaa bbb ccc xyz';

จงหาสตริงย่อยทั้งหมดที่มี ตัวอักษรเหมือนกันสามตัวเรียงกัน

กำหนดสตริง:

let str = 'a aa aaa aaaa aaaaa';

จงหาสตริงย่อยทั้งหมดที่มี ตัวอักษรเหมือนกันสองตัวหรือมากกว่าขึ้นไปเรียงกัน

กำหนดสตริง:

let str = 'aaa aaa bbb bbb ccc ddd';

จงหาสตริงย่อยทั้งหมดที่มี คำที่เหมือนกันสองคำเรียงกัน

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