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

Cách khớp bất kỳ ký tự nào dùng Java RegEx

Metaký tự “.” trong biểu thức chính quy Java khớp với bất kỳ ký tự đơn nào (có thể là chữ cái, số hoặc bất kỳ ký tự đặc biệt nào).

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();
        
        // Biểu thức chính quy khớp bất kỳ ký tự nào
        String regex = ".";
        
        // 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("Chuỗi đã cho chứa " + count + " ký tự.");
    }
}

Kết quả

Nhập một chuỗi hello how are you welcome to tutorialspoint
Chuỗi đã cho chứa 42 ký tự.

Bạn có thể khớp bất kỳ 3 ký tự nào giữa a và b bằng biểu thức chính quy sau:

a...b

Tương tự, biểu thức “.*” khớp n ký tự.

Ví dụ 2

Chương trình Java sau đọc 5 chuỗi từ người dùng và chấp nhận những chuỗi bắt đầu bằng b, kết thúc bằng a với bất kỳ số lượng ký tự nào ở giữa.

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 = "^b.*a$";
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập 5 chuỗi đầu vào: ");
        String input[] = new String[5];
        for (int i = 0; i < 5; i++) {
            input[i] = sc.nextLine();
        }
        // Tạo đối tượng Pattern
        Pattern p = Pattern.compile(regex);
        for (int i = 0; i < 5; i++) {
            // Tạo đối tượng Matcher
            Matcher m = p.matcher(input[i]);
            if (m.find()) {
                System.out.println(input[i] + ": accepted");
            } else {
                System.out.println(input[i] + ": not accepted");
            }
        }
    }
}

Kết quả

Nhập 5 chuỗi đầu vào: barbara boolean baroda ram raju
barbara: accepted
boolean: not accepted
baroda: accepted
ram: not accepted
raju: not accepted