คลาสอักขระในนิพจน์ทั่วไป Java ถูกกำหนดโดยใช้วงเล็บเหลี่ยม "[ ]" นิพจน์ย่อยนี้ตรงกับอักขระตัวเดียวจากที่ระบุหรือชุดของอักขระที่เป็นไปได้ ตัวอย่างเช่น นิพจน์ทั่วไป [abc] จะจับคู่อักขระตัวเดียว a หรือ b หรือ c
ตัวแปรช่วงของคลาสอักขระช่วยให้คุณใช้ช่วงของอักขระได้ เช่น นิพจน์ [a-z] จะจับคู่อักขระตัวเดียวจากตัวอักษร a ถึง z และนิพจน์ [^A-Z] จะจับคู่อักขระที่ไม่ใช่ตัวพิมพ์ใหญ่พี>
ตัวอย่างที่ 1
<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ RegexExample1 { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อความ:"); อินพุตสตริง =sc.nextLine(); สตริง regex ="[a-z]"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //จับคู่รูปแบบที่คอมไพล์แล้วใน String Matcher matcher =pattern.matcher(input); จำนวนเต็ม =0; ในขณะที่ (matcher.find()) { นับ ++; } System.out.println("จำนวนอักขระจากช่วง (a-z):"+จำนวน); }}ผลลัพธ์
ป้อนข้อความที่ป้อน:ตัวอย่างข้อมูล 5423 #@ %*&Number อักขระจากช่วง (a-z):10
ตัวอย่างที่ 2
<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ RegexExample3 { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อความ:"); อินพุตสตริง =sc.nextLine(); สตริง regex ="[^A-Z]"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //จับคู่รูปแบบที่คอมไพล์แล้วใน String Matcher matcher =pattern.matcher(input); จำนวนเต็ม =0; ถ้า (matcher.find ()) { System.out.println ("การจับคู่เกิดขึ้น"); } อื่น { System.out.println ("ไม่ตรงกัน"); } }}ผลลัพธ์ 1
ป้อนข้อความที่ป้อน:มีการจับคู่ข้อมูลตัวอย่าง
ผลลัพธ์ 2
ป้อนข้อความที่ป้อน:SAMPLEDATAไม่ตรงกัน