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

Cách khớp phạm vi ký tự dùng Java regex

Để khớp một phạm vi ký tự, tức là khớp tất cả các ký tự giữa hai ký tự được chỉ định trong một chuỗi, bạn có thể dùng lớp ký tự (character class) như:

[a-z]
  • Biểu thức “[a-zA-Z]” chấp nhận bất kỳ chữ cái tiếng Anh nào.
  • Biểu thức “[0-9&&[^35]]” chấp nhận số ngoại trừ 3 và 5.

Ví dụ 1

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

public class Example {
    public static void main(String args[]) {
        // Đọc chuỗi từ người dùng
        System.out.println("Nhập một chuỗi");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String regex = "^[a-zA-Z0-9]*$";
        
        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);
        
        // Lấy đối tượng matcher
        Matcher matcher = pattern.matcher(input);
        if (matcher.matches()) {
            System.out.println("Khớp xảy ra");
        } else {
            System.out.println("Không khớp");
        }
    }
}

Kết quả 1

Nhập một chuỗi Hello
Khớp xảy ra

Kết quả 2

Nhập một chuỗi sample#
Không khớp

Ví dụ 2

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

public class Example {
    public static void main(String args[]) {
        // Đọc chuỗi từ người dùng
        System.out.println("Nhập một chuỗi");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String regex = "[0-9&&[^35]]";
        
        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);
        
        // Lấy đối tượng matcher
        Matcher matcher = pattern.matcher(input);
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        System.out.println("Số lần xuất hiện: " + count);
    }
}

Kết quả

Nhập một chuỗi 111223333555689
Số lần xuất hiện: 8