Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะจับคู่อักขระจากสตริงที่กำหนดรวมถึงตัวพิมพ์โดยใช้ Java regex ได้อย่างไร


แพ็คเกจ java.util.regex ของ java มีคลาสต่างๆ เพื่อค้นหารูปแบบเฉพาะในลำดับอักขระ คลาสรูปแบบของแพ็คเกจนี้เป็นการแสดงนิพจน์ทั่วไปที่คอมไพล์แล้ว

เพื่อจับคู่อักขระเฉพาะจากสตริงอินพุตที่กำหนด -

  • รับสตริงอินพุต

  • คอมไพล์() . นี้ เมธอดของคลาสนี้ยอมรับค่าสตริงที่แสดงถึงนิพจน์ทั่วไป และค่าจำนวนเต็มที่แสดงแฟล็กจะส่งคืนอ็อบเจกต์ Pattern รวบรวมการเลี่ยงผ่านนิพจน์ทั่วไป -

    • ตัวจับคู่รูปแบบ “[ ] ” โดยมีอักขระที่จำเป็น เช่น “[t]”.

    • ตั้งค่าสถานะ CASE_INSENSITIVE เพื่อละเว้นตัวพิมพ์

  • ตัวจับคู่() วิธีการของ รูปแบบ คลาสยอมรับสตริงอินพุตและส่งคืนออบเจ็กต์ Matcher สร้าง/เรียกวัตถุที่จับคู่โดยใช้วิธีนี้

  • ค้นหา() − การใช้ find() วิธีการของ Matcher การจับคู่.

ตัวอย่าง

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ CompileExample { โมฆะ สาธารณะ หลัก ( สตริง args [] ) { // การอ่านค่าสตริง Scanner sc =สแกนเนอร์ใหม่ (System.in); System.out.println("ป้อนสตริงอินพุต"); อินพุตสตริง =sc.nextLine(); //นิพจน์ปกติเพื่อค้นหาตัวเลข String regex ="[t]"; //การคอมไพล์นิพจน์ทั่วไป Pattern pattern =Pattern.compile(regex, Pattern.CASE_INSENSITIVE); //ดึงวัตถุที่จับคู่ Matcher matcher =pattern.matcher (อินพุต); จำนวน int =0; ในขณะที่ (matcher.find ()) { นับ ++; } System.out.println("จำนวนที่ตรงกัน:"+นับ); }}

ผลลัพธ์

ป้อนอินพุต stringTutorialspoint จำนวนที่ตรงกัน:3