Cách 1: Dùng alternation | (OR)
Kết hợp nhiều regex bằng |.
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SampleExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập input: ");
String input = sc.nextLine();
String regex = "\\d{10}|^[aeiou]"; // 10 số HOẶC bắt đầu bằng nguyên âm
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println(input + " is valid");
} else {
System.out.println(input + " is not valid");
}
}
}
Kết quả
Nhập input: 9848033228
9848033228 is valid
Nhập input: an apple a day keeps doctor away
an apple a day keeps doctor away is valid
Cách 2: List of Patterns (tách biệt từng regex)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MultipleRegex {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập input: ");
String input = sc.nextLine();
String regex1 = "\\d{10}";
String regex2 = "^[aeiou]";
Pattern pattern1 = Pattern.compile(regex1);
Pattern pattern2 = Pattern.compile(regex2);
List patterns = new ArrayList<>();
patterns.add(pattern1);
patterns.add(pattern2);
for (Pattern pattern : patterns) {
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("For regex " + pattern.pattern() + " " + input + " is valid");
} else {
System.out.println("For regex " + pattern.pattern() + " " + input + " is not valid");
}
}
}
}
Kết quả
Nhập input: 9848033228
For regex \d{10} 9848033228 is valid
For regex ^[aeiou] 9848033228 is not valid
So sánh
| Cách | Ưu điểm | Nhược điểm |
|---|---|---|
Alternation | | Gọn, một lần match | Không biết regex nào khớp, khó debug |
| List Patterns | Biết rõ regex nào khớp, tái sử dụng Pattern | Nhiều lần match, code dài hơn |
Best Practice
- Compile Pattern một lần, reuse nhiều lần.
- Dùng List
khi cần report chi tiết từng rule. - Dùng
|khi chỉ cần boolean valid/invalid.