Phần biểu thức/metaký tự “re?” khớp với 0 hoặc 1 lần xuất hiện của biểu thức đi trước.
Ví dụ 1
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String args[]) {
String regex = "Wel?";
String input = "Welcome to Tutorialspoint";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
int count = 0;
while (m.find()) {
count++;
}
System.out.println("Số lần khớp: " + count);
}
}
Kết quả
Số lần khớp: 1
Ví dụ 2
Chương trình Java sau chấp nhận chuỗi từ người dùng, kiểm tra xem nó có chứa chữ cái (cả hai trường hợp) và cũng chấp nhận chữ số.
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String args[]) {
String regex = "[a-zA-Z][0-9]?";
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi đầu vào: ");
String input = sc.nextLine();
// Tạo đối tượng Pattern
Pattern p = Pattern.compile(regex);
// Tạo đối tượng Matcher
Matcher m = p.matcher(input);
if (m.find()) {
System.out.println("Khớp xảy ra");
} else {
System.out.println("Không khớp");
}
}
}
Kết quả 1
Nhập chuỗi đầu vào: sample text Khớp xảy ra
Kết quả 2
Nhập chuỗi đầu vào: sample text 34 56 Khớp xảy ra
Kết quả 3
Nhập chuỗi đầu vào: 32 89 45 63 Không khớp