แพ็กเกจ java.util.regex ของ Java มีคลาสต่างๆ สำหรับค้นหารูปแบบเฉพาะในลำดับตัวอักษร คลาส Pattern ของแพ็กเกจนี้เป็นการแสดงรูปแบบที่คอมไพล์แล้วของนิพจน์ปกติ
เพื่อจับคู่ตัวอักษรเฉพาะจากสตริงอินพุตที่กำหนด:
รับสตริงอินพุต
เมธอด compile() ของคลาสนี้รับค่าสตริงที่แทนนิพจน์ปกติและค่าจำนวนเต็มที่แทนแฟล็ก (flag) ส่งคืนออบเจ็กต์ Pattern คอมไพล์นิพจน์ปกติโดยส่งผ่าน:
ตัวจับคูรรูปแบบ “[ ]” พร้อมตัวอักษรที่ต้องการ เช่น “[t]”
แฟล็ก CASE_INSENSITIVE เพื่อละเลยการแยกตัวพิมพ์เล็ก/ใหญ่
เมธอด matcher() ของคลาส Pattern รับสตริงอินพุตและส่งคืนออบเจ็กต์ Matcher สร้าง/ดึงออบเจ็กต์ matcher โดยใช้เมธอดนี้
find() - ใช้เมธอด find() ของ Matcher เพื่อค้นหาการจับคู่
ตัวอย่าง
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
public static void main( String args[] ) {
// อ่านค่าสตริง
Scanner sc = new Scanner(System.in);
System.out.println("Enter input string");
String input = sc.nextLine();
// นิพจน์ปกติเพื่อค้นหาตัวเลข
String regex = "[t]";
// คอมไพล์นิพจน์ปกติพร้อมแฟล็ก CASE_INSENSITIVE
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
// ดึงออบเจ็กต์ matcher
Matcher matcher = pattern.matcher(input);
int count = 0;
while(matcher.find()) {
count++;
}
System.out.println("Number of matches: " + count);
}
}ผลลัพธ์
Enter input string Tutorialspoint Number of matches: 3