ทั้งหมดในหนึ่ง Java Regex, Matcher Pattern และ Regular Expressions Tutorial

เผยแพร่แล้ว: 2021-09-29
ทั้งหมดในหนึ่ง Java Regex, Matcher Pattern และ Regular Expressions Tutorial

ในบทช่วยสอนนี้ เราจะพูดถึงรายการ Matcher ( java.util.regex.Matcher ) APIs เมื่อก่อนฉันได้เขียนบทช่วยสอนเกี่ยวกับ Java Regex ซึ่งครอบคลุมตัวอย่างที่หลากหลาย

Regular Expression เป็นรูปแบบการค้นหาสำหรับ String java.util.regex คลาสสำหรับการจับคู่ลำดับอักขระกับรูปแบบที่ระบุโดยนิพจน์ทั่วไปใน Java

บทช่วยสอนนี้ใช้ได้ผลดีที่สุดหากคุณมีคำถามใดๆ ด้านล่าง:

  • Java Regex – บทช่วยสอน
  • บทช่วยสอนนิพจน์ทั่วไปของ Java
  • Expression ปกติใน Java คืออะไร?
  • รูปแบบใน Java คืออะไร?
  • ตัวอย่างการจับคู่รูปแบบจาวาและจาวา regex อักขระพิเศษ

มาเริ่มกันเลย.

  1. สร้างคลาส CrunchifyPatternMatcherTutorial.java
  2. สร้างวิธีการต่างๆ เพื่อตรวจสอบ Matcher API ด้านล่าง:
    • แมตช์()
    • มองไปที่()
    • findStartEnd()
    • กลุ่ม()
    • หลายกลุ่ม ()
    • แทนที่ทั้งหมด()
  3. พิมพ์ผลลัพธ์ของแต่ละ API

แมตช์()

matches() พยายามจับคู่สตริงทั้งหมดกับรูปแบบ จะส่งกลับค่า true หาก และ only if ที่ลำดับภูมิภาคทั้งหมดตรงกับรูปแบบของการจับคู่นี้

มองไปที่()

ฟังก์ชัน lookAt() เหมือนกันทุกประการกับmatch() เว้นแต่จะพยายามจับคู่ลำดับอินพุต โดยเริ่มต้นที่จุดเริ่มต้นของภูมิภาค เทียบกับรูปแบบ จะส่งกลับค่าจริง และเฉพาะในกรณีที่คำนำหน้าของลำดับอินพุตตรงกับรูปแบบของการจับคู่นี้

find(), start() และ end()

find() พยายามค้นหาลำดับถัดไปของลำดับอินพุตที่ตรงกับรูปแบบ start() พยายามคืนค่าดัชนีเริ่มต้นของการจับคู่ก่อนหน้า และ end() พยายามส่งคืนดัชนีสิ้นสุดของการจับคู่ก่อนหน้า

กลุ่ม()

group() ส่งกลับอินพุตย่อยที่ตรงกับการจับคู่ก่อนหน้า มันเหมือนกับการจับคู่ระหว่าง start() และ end()

หลายกลุ่ม

multiplegroups สามารถแสดงด้วย “(สตริง) (สตริง)”

ตัวอย่าง: String crunchifyPattern = "(is) (.+?) (.+?) " ;

แทนที่ทั้งหมด()

replaceAll() แทนที่ทุกลำดับย่อยของลำดับอินพุตที่ตรงกับรูปแบบด้วยสตริงการแทนที่ที่กำหนด

นี่คือตัวอย่างที่สมบูรณ์:

ผลลัพธ์ของคอนโซล Eclipse:

แจ้งให้เราทราบหากคุณมีคำถามใด ๆ ในการใช้งานโปรแกรมข้างต้น