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

Character Class Subtraction trong Java Regular Expressions


Khái niệm

Trừ một phạm vi khỏi phạm vi khác. Kết hợp negation ^ và intersection &&.

Cú pháp: [range1&&[^range2]]

Ví dụ: [a-l&&[^e-h]]

Chữ cái a-l trừ e-h → a,b,c,d,i,j,k,l

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-l&&[^e-h]]";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        int count = 0;
        while (matcher.find()) {
            count++;
            System.out.print(matcher.group() + " ");
        }
        System.out.println("\nSố ký tự khớp: " + count);
    }
}

Kết quả

Nhập văn bản: abcdefghijklmnopq
a b c d i j k l
Số ký tự khớp: 8

Các ví dụ khác

RegexKết quả
[a-z&&[^aeiou]]Phụ âm (chữ thường trừ nguyên âm)
[0-9&&[^5]]Chữ số trừ 5
[\p{Alpha}&&[^A-Z]]Chữ thường (chữ cái trừ chữ hoa)