แพ็คเกจ java.util.regex ของ java มีคลาสที่หลากหลายเพื่อค้นหารูปแบบเฉพาะในลำดับอักขระ
รูปแบบ คลาสของแพ็คเกจนี้เป็นการแสดงนิพจน์ทั่วไปที่คอมไพล์แล้ว ในการจับคู่นิพจน์ทั่วไปกับสตริง คลาสนี้จะมีสองวิธีคือ −
-
คอมไพล์() − เมธอดนี้ยอมรับสตริงที่แสดงนิพจน์ทั่วไปและส่งคืนอ็อบเจ็กต์ของออบเจกต์ Pattern
-
ตัวจับคู่() − เมธอดนี้ยอมรับค่าสตริงและสร้างอ็อบเจ็กต์ที่จับคู่ซึ่งตรงกับสตริงที่กำหนดกับรูปแบบที่แสดงโดยอ็อบเจ็กต์รูปแบบปัจจุบัน
ต่อไปนี้เป็นนิพจน์ทั่วไปที่จะจับคู่วันที่ในรูปแบบ dd-MM-yyyy:
^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$
ดังนั้น ในการตรวจสอบวันที่ สตริงของรูปแบบ MM-DD-YYYY −
-
รวบรวมนิพจน์ทั่วไปที่กล่าวถึงข้างต้นโดยใช้ คอมไพล์() เมธอดของคลาส Pattern และดึงออบเจ็กต์ Pattern
-
ใช้วัตถุที่ได้รับข้างต้น เรียกใช้ matcher() โดยส่งสตริงวันที่ที่ต้องการเป็นพารามิเตอร์และดึงวัตถุ Matcher จากวิธีนี้
-
การจับคู่ () ของคลาส Matcher คืนค่าจริงในกรณีที่มีการจับคู่อื่นจะส่งกลับค่าเท็จ เรียกใช้เมธอดนี้กับอ็อบเจกต์ตัวจับคู่ที่ได้รับจากขั้นตอนก่อนหน้า
ตัวอย่าง
import java.util.regex.Matcher; import java.util.regex.Pattern; public class MatchingDate { public static void main(String[] args) { String date = "01/12/2019"; String regex = "^(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/[0-9]{4}$"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(date); boolean bool = matcher.matches(); if(bool) { System.out.println("Date is valid"); } else { System.out.println("Date is not valid"); } } }
ผลลัพธ์
Date is valid