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

วิธีจับคู่ช่วงตัวอักษรด้วย Java regex

เพื่อจับคู่ช่วงตัวอักษร นั่นคือ จับคู่ตัวอักษรทั้งหมดระหว่างตัวอักษรที่ระบุสองตัวในลำดับ คุณสามารถใช้คลาสตัวอักษร (character class) ได้ดังนี้:

[a-z]
  • นิพจน์ “[a-zA-Z]” ยอมรับตัวอักษรอังกฤษทุกตัว

  • นิพจน์ “[0-9&&[^35]]” ยอมรับตัวเลขยกเว้น 3 และ 5

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

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class Example { 
    public static void main(String args[]) { 
        // อ่านสตริงจากผู้ใช้ 
        System.out.println("Enter a String"); 
        Scanner sc = new Scanner(System.in); 
        String input = sc.nextLine(); 
        String regex = "^[a-zA-Z0-9]*$"; 
        // คอมไพล์นิพจน์ปกติ 
        Pattern pattern = Pattern.compile(regex); 
        // ดึงออบเจ็กต์ matcher 
        Matcher matcher = pattern.matcher(input); 
        if(matcher.matches()) { 
            System.out.println("Match occurred"); 
        } else { 
            System.out.println("Match not occurred"); 
        } 
    } 
}

ผลลัพธ์ที่ 1

Enter a String Hello 
Match occurred

ผลลัพธ์ที่ 2

Enter a String sample# 
Match not occurred

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

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class Example { 
    public static void main(String args[]) { 
        // อ่านสตริงจากผู้ใช้ 
        System.out.println("Enter a String"); 
        Scanner sc = new Scanner(System.in); 
        String input = sc.nextLine(); 
        String regex = "[0-9&&[^35]]"; 
        // คอมไพล์นิพจน์ปกติ 
        Pattern pattern = Pattern.compile(regex); 
        // ดึงออบเจ็กต์ matcher 
        Matcher matcher = pattern.matcher(input); 
        int count = 0; 
        while(matcher.find()) { 
            count++; 
        } 
        System.out.println("Occurrences :" + count); 
    } 
}

ผลลัพธ์

Enter a String 111223333555689 
Occurrences :8