Ký tự meta “.” trong java biểu thức chính quy khớp với bất kỳ ký tự nào (đơn), nó có thể là bảng 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[]) {
//Reading String from user
System.out.println("Enter a String");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
//Regular expression to match any character
String regex = ".";
//Compiling the regular expression
Pattern pattern = Pattern.compile(regex);
//Retrieving the matcher object
Matcher matcher = pattern.matcher(input);
int count = 0;
while(matcher.find()) {
count ++;
}
System.out.println("Given string contains "+count+" characters.");
}
} Đầu ra
Enter a String hello how are you welcome to tutorialspoint Given string contains 42 characters.
Bạn có thể so khớp 3 ký tự bất kỳ giữa a và b bằng cách sử dụng biểu thức chính quy sau -
a…b
Tương tự, biểu thức “. *” Khớp với n số ký tự.
Ví dụ 2
Chương trình Java sau đây đọ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ố ký tự nào ở giữa chúng.
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("Enter 5 input strings: ");
String input[] = new String[5];
for (int i=0; i<5; i++) {
input[i] = sc.nextLine();
}
//Creating a Pattern object
Pattern p = Pattern.compile(regex);
for(int i=0; i<5;i++) {
//Creating a Matcher object
Matcher m = p.matcher(input[i]);
if(m.find()) {
System.out.println(input[i]+": accepted");
} else {
System.out.println(input[i]+": not accepted");
}
}
}
} Đầu ra
Enter 5 input strings: barbara boolean baroda ram raju barbara: accepted boolean: not accepted baroda: accepted ram: not accepted raju: not accepted