Các lớp ký tự trong biểu thức chính quy Java được xác định bằng cách sử dụng dấu ngoặc vuông "[]", biểu thức con này khớp với một ký tự duy nhất từ tập hợp các ký tự có thể được chỉ định hoặc.
Ví dụ:biểu thức chính quy [abc] khớp với một ký tự a hoặc, b hoặc, c. Tương tự, "[a-z]" đối sánh với một ký tự đơn lẻ từ a đến z.
Tương tự, biến thể phủ định của lớp ký tự được định nghĩa là "[^]" (với ^ trong dấu ngoặc vuông), nó khớp với một ký tự đơn lẻ không có trong nhóm ký tự được chỉ định hoặc có thể có.
Ví dụ:biểu thức chính quy [^ abc] khớp với một ký tự duy nhất ngoại trừ a hoặc, b hoặc, c. Tương tự, "[^ a-z]" khớp với một ký tự ngoại trừ các bảng chữ cái từ a đến z.
Ví dụ 1
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("Enter input text: ");
String input = sc.nextLine();
String regex = "[^aeiou]";
//Creating a pattern object
Pattern pattern = Pattern.compile(regex);
//Matching the compiled pattern in the String
Matcher matcher = pattern.matcher(input);
int count =0;
while (matcher.find()) {
count++;
}
System.out.println("Number of non-vowel characters : "+count);
}
} Đầu ra
Enter input text: sample data Number of non-vowel characters : 7