Post

Vỡ lòng Regex – Khi bạn muốn làm phù thủy văn bản

Vỡ lòng Regex – Khi bạn muốn làm phù thủy văn bản

Regex (Regular Expressions) là một công cụ siêu mạnh để tìm kiếm theo mẫu và xử lý văn bản.
Bạn có thể dùng nó để tra cứu, kiểm tra dữ liệu đầu vào, trích xuất thông tin… nói chung là rất nhiều thứ hay ho.


Regex là gì?

Regex (biểu thức chính quy) là một chuỗi ký tự đặc biệt, được thiết kế để mô tả một mẫu (pattern) trong văn bản.
Nghe thì “ghê”, nhưng nó như ma thuật: viết vài ký tự là bắt được cả đoạn văn.

1
2
3
4
5
abc     # Khớp đúng 'abc'
\d      # Số bất kỳ (0–9)
\w      # Ký tự chữ, số hoặc gạch dưới
\s      # Khoảng trắng (space, tab, xuống dòng)
.       # Ký tự bất kỳ (trừ xuống dòng)

Bộ định lượng (quantifiers)

1
2
3
4
5
a*      # 0 hoặc nhiều ký tự 'a'
a+      # Ít nhất 1 'a'
a?      # Có hoặc không có 'a'
a{3}    # Chính xác 3 'a'
a{2,4}  # Từ 2 đến 4 'a'

Nhóm ký tự (character classes)

1
2
3
[abc]        # Khớp 'a', 'b' hoặc 'c'
[^abc]       # Bất kỳ ký tự nào trừ 'a', 'b', 'c'
[a-zA-Z0-9]  # Chữ cái hoặc số

Điểm neo (anchors)

1
2
3
^start     # Bắt đầu dòng
end$       # Kết thúc dòng
\bword\b   # Khớp cả từ, không ăn gian nửa chữ

Nhóm và lựa chọn (groups & alternation)

1
2
3
(grab|take)              # 'grab' hoặc 'take'
(colou?r)                # 'color' hay 'colour', dân Anh - Mỹ đều chơi được
(\d{3})-(\d{2})-(\d{4})  # Định dạng giống số CMND kiểu Mỹ

Một số ứng dụng quen thuộc

Kiểm tra email

1
^[\w.-]+@[\w.-]+\.\w+$

Tìm tất cả URL

1
https?:\/\/(www\.)?[\w\-]+(\.[\w\-]+)+

Lấy ra các từ

1
\b\w+\b

Thử ngay cho nóng

Bạn có thể vọc ngay tại:

Tổng kết

Regex ban đầu nhìn như ký hiệu ngoài hành tinh, nhưng khi quen rồi thì lại thấy “bén” cực kỳ.
Chỉ vài ký tự là bạn có thể lọc log, tìm lỗi, xử lý chuỗi văn bản như một phù thủy của dòng lệnh.
Nên… đừng sợ, cứ luyện dần là “lên trình” nhé!


This post is licensed under CC BY 4.0 by the author.