แพ็คเกจ 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