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

วิธีจับคู่จำนวน n ครั้งของนิพจน์ด้วย Java RegEx

ตัวนับแบบละเอียด (greedy quantifiers) ที่ Java จัดเตรียมไว้ ช่วยให้คุณจับคู่การเกิดซ้ำของนิพจน์หลายครั้ง โดยที่:

  • Exp{n} บังคับให้เกิดนิพจน์ exp อย่างแน่นอน n ครั้ง

  • Exp{n,} บังคับให้เกิดนิพจน์ exp อย่างน้อย n ครั้ง

  • Exp{n, m} บังคับให้เกิดนิพจน์ exp อย่างน้อย n และสูงสุด m ครั้ง

ตัวอย่างที่ 1

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class RegexExample { 
    public static void main( String args[] ) { 
        // นิพจน์ปกติยอมรับคำ 5 ตัวอักษร 
        String regex = "\\w{5}"; 
        Scanner sc = new Scanner(System.in); 
        System.out.println("Enter 5 input strings: "); 
        String input[] = new String[5]; 
        for (int i=0; i<5; i++) { 
            input[i] = sc.nextLine(); 
        } 
        // สร้างออบเจ็กต์ Pattern 
        Pattern p = Pattern.compile(regex); 
        for(int i=0; i<5;i++) { 
            // สร้างออบเจ็กต์ Matcher 
            Matcher m = p.matcher(input[i]); 
            if(m.find()) { 
                System.out.println(input[i] + ": accepted"); 
            } else { 
                System.out.println(input[i] + ": not accepted"); 
            } 
        } 
    } 
}

ผลลัพธ์

Enter 5 input strings: rama raja raghu megha malya 
rama: not accepted 
raja: not accepted 
raghu: accepted 
megha: accepted 
malya: accepted

ตัวอย่างที่ 2

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class RegexExample { 
    public static void main( String args[] ) { 
        // นิพจน์ปกติจับคู่สตริง non-word ความยาว 2 ถึง 6 
        String regex = "\\W{2,6}"; 
        Scanner sc = new Scanner(System.in); 
        System.out.println("Enter 5 input strings: "); 
        String input[] = new String[5]; 
        for (int i=0; i<5; i++) { 
            input[i] = sc.nextLine(); 
        } 
        Pattern p = Pattern.compile(regex); 
        for(int i=0; i<5;i++) { 
            Matcher m = p.matcher(input[i]); 
            if(m.find()) { 
                System.out.println(input[i] + " matched"); 
            } 
        } 
    } 
}

ผลลัพธ์ที่ 1

Enter 5 input strings: hello how are you #$#% # #$@%%#&#& sample text 
#$#% matched 
#$@%%#&#& matched

ตัวอย่างที่ 3

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class RegexExample { 
    public static void main(String args[] ) { 
        String regex = "[a-zA-Z]{1,20}"; 
        Scanner sc = new Scanner(System.in); 
        System.out.println("Enter students name:"); 
        String name = sc.nextLine(); 
        Pattern p = Pattern.compile(regex); 
        Matcher m = p.matcher(name); 
        if(m.matches()) { 
            System.out.println("Name is appropriate"); 
        } else { 
            System.out.println("Name is inappropriate"); 
        } 
    } 
}

ผลลัพธ์

Enter students name: Mouktika 
Name is appropriate