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

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


Khái niệm

Lớp ký tự (character class) trong Java regex được định nghĩa bằng cặp ngoặc vuông [], khớp với một ký tự đơn từ tập hợp chỉ định. Ví dụ: [abc] khớp a, b hoặc c.

Biến thể Union cho phép khớp ký tự từ một trong các phạm vi chỉ định. Biểu thức [a-z[0-9]] khớp một ký tự là chữ thường (a-z) hoặc chữ số (0-9).

Ví dụ

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[0-9]]";
        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 hoặc 0-9): " + count);
    }
}

Kết quả

Nhập văn bản: sample DATA 12345
Số ký tự trong phạm vi (a-z hoặc 0-9): 11

Giải thích

  • sample (6 ký tự thường) + 12345 (5 chữ số) = 11 khớp.
  • DATA (chữ hoa) không khớp vì regex chỉ chứa a-z và 0-9.

Các biến thể Union khác

  • [a-f[0-3]] - chữ cái a-f hoặc số 0-3
  • [A-Z[a-z]] - chữ hoa hoặc chữ thường (tương đương [A-Za-z])