Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมธอด matches() ของ Pattern ใน Java พร้อมตัวอย่าง

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