RegEx
Regular Expressions (Biểu thức chính quy) là một ngôn ngữ để tìm kiếm và xử lý chuỗi văn bản theo mẫu.
1. Kiểm tra chuỗi khớp với mẫu (Pattern Matching)
import java.util.regex.*;
String email = "[email protected]";
Pattern pattern = Pattern.compile("[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+");
Matcher matcher = pattern.matcher(email);
if (matcher.matches()) {
System.out.println("Valid email address");
} else {
System.out.println("Invalid email address");
}
2. Tìm tất cả các chuỗi khớp mẫu (Pattern Finding)
String text = "This sentence contains Java, JavaScript, and JavaFX";
Pattern pattern = Pattern.compile("\\bJava\\S*");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
// Output:
// Java
// JavaScript
// JavaFX
3. Biểu thức thông dụng (Common Patterns)
Pattern | Description | Example |
---|---|---|
[abc] | Một trong các ký tự a, b, hoặc c | [ez] tìm "e", "z" |
[^abc] | Bất kỳ ký tự nào không phải a, b, c | [^.net] tìm không phải . , n , e , t |
[0-9] | Một chữ số từ 0 đến 9 | [1-3] khớp 1, 2, 3 |
[a-zA-Z] | Chữ cái thường và in hoa |
4. Metacharacters (Ký tự đặc biệt)
Symbol | Ý nghĩa |
---|---|
. | Bất kỳ ký tự nào (trừ newline) |
^ | Bắt đầu chuỗi (vd: ^Hello ) |
$ | Kết thúc chuỗi (vd: World$ ) |
\d | Một chữ số (digit) |
\s | Khoảng trắng (space, tab, ...) |
\b | Biên giới từ (đầu hoặc cuối từ) |
\w | Ký tự chữ hoặc số ([a-zA-Z0-9_] ) |
\\ | Dùng để viết dấu \ trong chuỗi Java |
5. Quantifiers (Bộ định lượng)
Cú pháp | Mô tả |
---|---|
n+ | Ít nhất một ký tự n |
n* | Không hoặc nhiều ký tự n |
n? | Không hoặc một ký tự n |
n{x} | Chính xác x ký tự n |
n{x,y} | Từ x đến y ký tự n |
n{x,} | Ít nhất x ký tự n |
6. Gợi ý mẫu thực tế (Useful RegEx Patterns)
Mục đích | Mẫu |
---|---|
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+ | |
Số điện thoại | \\d{10,11} (10 hoặc 11 chữ số) |
Mật khẩu (>=8 ký tự) | .{8,} |
Chỉ chứa số | ^[0-9]+$ |
Chỉ chữ và số | ^[a-zA-Z0-9]+$ |
RegEx là gì?
RegEx (Regular Expression) là một chuỗi ký tự mô tả một mẫu tìm kiếm. Trong Java, RegEx thường được sử dụng với các lớp Pattern
và Matcher
từ java.util.regex
.
Ứng dụng phổ biến:
- Kiểm tra định dạng email, số điện thoại
- Lọc và trích xuất dữ liệu từ chuỗi
- Tìm kiếm và thay thế chuỗi