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)

PatternDescriptionExample
[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$)
\dMột chữ số (digit)
\sKhoảng trắng (space, tab, ...)
\bBiên giới từ (đầu hoặc cuối từ)
\wKý 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ápMô 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 đíchMẫu
Email[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 PatternMatcher 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