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

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

คลาส Pattern ของแพ็กเกจ java.regex เป็นการแสดงรูปแบบที่คอมไพล์แล้วของนิพจน์ปกติ

เมธอด compile() ของคลาสนี้รับค่าสตริงที่แทนนิพจน์ปกติและส่งคืนออบเจ็กต์ Pattern

ตัวอย่าง

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 = "(\\d)"; 
        // คอมไพล์นิพจน์ปกติ 
        Pattern pattern = Pattern.compile(regex); 
        // แสดงนิพจน์ปกติที่คอมไพล์แล้ว 
        System.out.println("Compiled regular expression: " + pattern.toString()); 
        // ดึงออบเจ็กต์ matcher 
        Matcher matcher = pattern.matcher(input); 
        // ตรวจสอบการจับคู่ 
        if(matcher.find()) { 
            System.out.println("Given String contains digits"); 
        } else { 
            System.out.println("Given String does not contain digits"); 
        } 
    } 
}

ผลลัพธ์

Enter input string hello my id is 1120KKA 
Compiled regular expression: (\d) 
Given String contains digits

รูปแบบอื่นของเมธอดนี้รับค่าจำนวนเต็มที่แทนแฟล็ก (flags) โดยแต่ละแฟล็กระบุเงื่อนไขเพิ่มเติม เช่น CASE_INSENSITIVE ที่ละเลยตัวพิมพ์เล็ก/ใหญ่ขณะคอมไพล์นิพจน์ปกติ

ตัวอย่างพร้อมแฟล็ก

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class CompileExample { 
    public static void main( String args[] ) { 
        // คอมไพล์นิพจน์ปกติพร้อมแฟล็ก 
        Pattern pattern = Pattern.compile("[t]", Pattern.CASE_INSENSITIVE); 
        // ดึงออบเจ็กต์ matcher 
        Matcher matcher = pattern.matcher("Tutorialspoint"); 
        int count = 0; 
        while(matcher.find()) { 
            count++; 
        } 
        System.out.println("Number of matches: " + count); 
    } 
}

ผลลัพธ์

Number of matches: 3