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