เอ็นจิ้นทั่วไปหลายคนรองรับการจัดกลุ่ม Java แนะนำคุณสมบัตินี้ใน Java7 ไวยากรณ์คล้ายกับ. NET (.NET อนุญาตให้กลุ่มที่มีชื่อเดียวกันปรากฏในนิพจน์เดียวกัน แต่ Java ไม่ได้)
การตั้งชื่อกลุ่มนั้นง่ายต่อการเข้าใจมันหมายถึงการตั้งชื่อกลุ่ม ด้านล่างเป็นการสาธิตสั้น ๆ เกี่ยวกับวิธีการใช้และข้อควรระวังใน Java
1. กำหนดกลุ่มชื่อชื่อปกติ
(? <name> x)
นี่คือเนื้อหาที่เราต้องการจับคู่ โปรดทราบว่าไม่สามารถทำซ้ำชื่อในเรื่องนี้ได้และชื่อไม่สามารถเริ่มต้นได้ด้วยตัวเลข!
2. การย้อนกลับไปยังเนื้อหาที่ตรงกับกลุ่มชื่อ
/k <name>
โปรดทราบว่า backreferences มีไว้สำหรับสิ่งที่กลุ่มตรงกับการแสดงออกของกลุ่ม
3. ในการแทนที่อ้างอิงสตริงที่จับในชื่อกลุ่ม
$ {ชื่อ}
4. รับสตริงที่จับโดยกลุ่มชื่อ
กลุ่ม (ชื่อสตริง)
หมายเหตุ: คุณสามารถใช้หมายเลขลำดับเพื่ออ้างอิงชื่อการจับภาพ หมายเลขลำดับเริ่มต้นจาก 1 และ 0 เป็นผลการจับคู่ที่สมบูรณ์ของปกติ
นี่คือกฎง่ายๆที่จะได้รับปีและวันแยกกันเป็นตัวอย่าง:
String S = "2015-10-26"; รูปแบบ p = pattern.compile ("(? <ปี> // d {4})-(? <mony> // d {2})-(? <day> // d {2})"); Matcher M = P.Matcher (S); if (m.find ()) {system.out.println ("ปี:" + m.group ("ปี")); // ปี System.out.println ("เดือน:" + m.group ("เดือน")); // Month System.out.println ("วัน:" + M.Group ("วัน")); // Daily System.out.println ("ปี:" + M.Group (1)); // กลุ่มแรกของ System.out.println ("เดือน:" + M.Group (2)); // กลุ่มที่สองของ system.out.println ("วัน:" + m.group (3)); // กลุ่มที่สาม} system.out.println (s.replaceall ("(? <ปี> // d {4})-(? <mony> // d {2})-(? <day> // d {2})", "$ {วัน}-$ {เดือน}-$ {ปี}"); // เปลี่ยนวันที่แบบฟอร์มวันประจำเดือนเป็นแบบฟอร์มปีประจำเดือน ผลลัพธ์ผลลัพธ์
ปี: 2015 เดือน: 10 วัน: 26 ปี: 2015 เดือน: 10day: 2626-10-2015
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน