แพ็กเกจ java.util.regex ของ Java มีคลาสต่างๆ สำหรับค้นหารูปแบบเฉพาะในลำดับตัวอักษร คลาส Pattern ของแพ็กเกจนี้เป็นการแสดงรูปแบบที่คอมไพล์แล้วของนิพจน์ปกติ
เมธอด matches() ของคลาส Pattern รับพารามิเตอร์ 2 ตัว:
ค่าสตริงที่แทนนิพจน์ปกติ
ออบเจ็กต์ของคลาส CharSequence ที่แทนสตริงอินพุต
เมื่อเรียกใช้ เมธอดนี้จะจับคู่สตริงอินพุตกับนิพจน์ปกติ ส่งคืนค่า boolean ซึ่งเป็น true หากจับคู่ได้ มิฉะนั้น false
ตัวอย่าง
import java.util.Scanner;
import java.util.regex.Pattern;
public class MatchesExample {
public static void main(String[] args) {
// รับวันที่จากผู้ใช้
Scanner sc = new Scanner(System.in);
System.out.println("Enter date string in [dd/mm/yyy] format: ");
String date = sc.next();
String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$";
// ใช้ Pattern.matches() โดยตรง
boolean result = Pattern.matches(regex, date);
if(result) {
System.out.println("Date is valid");
} else {
System.out.println("Date is not valid");
}
}
}ผลลัพธ์ที่ 1
Enter date string in [dd/mm/yyy] format: 01/12/2019 Date is valid
ผลลัพธ์ที่ 2
Enter date string in [dd/mm/yyy] format: 2019-21-12 Date is not valid