Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Lớp ký tự Range trong Java Regular Expressions


Khái niệm

Lớp ký tự (character class) trong Java regex dùng [] khớp một ký tự từ tập chỉ định. Biến thể Range cho phép dùng dải ký tự.

  • [a-z] - khớp một ký tự từ a đến z
  • [^A-Z] - khớp ký tự không phải chữ hoa A-Z

Ví dụ 1: Đếm ký tự a-z

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập văn bản: ");
        String input = sc.nextLine();
        String regex = "[a-z]";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        System.out.println("Số ký tự trong phạm vi (a-z): " + count);
    }
}
Nhập văn bản: sample data 5423 #@ %*&
Số ký tự trong phạm vi (a-z): 10

Ví dụ 2: Kiểm tra có ký tự không phải chữ hoa

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập văn bản: ");
        String input = sc.nextLine();
        String regex = "[^A-Z]";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        if (matcher.find()) {
            System.out.println("match occurred");
        } else {
            System.out.println("match not occurred");
        }
    }
}
Nhập văn bản: sample data
match occurred
Nhập văn bản: SAMPLEDATA
match not occurred

Các Range phổ biến

RegexÝ nghĩa
[0-9]Chữ số 0-9
[A-Z]Chữ hoa A-Z
[a-zA-Z]Chữ cái (cả hai case)
[a-zA-Z0-9]Chữ và số (alphanumeric)