Xử Lý Văn Bản Và Regex — 1 Dòng Lệnh Thay Cho Hàng Trăm Dòng Sửa Tay

Tóm tắt nhanh: Regex (biểu thức chính quy) là ‘ngôn ngữ’ để mô tả mẫu hình trong văn bản — email, số điện thoại, mã sản phẩm… Thay vì sửa tay hàng trăm dòng dữ liệu lộn xộn, 1 dòng regex có thể xử lý toàn bộ cùng lúc.
Thư viện: re (built-in Python)Áp dụng trực tiếp lên cột pandasGiải quyết dữ liệu bẩn thực tế

Bài trước bạn học làm sạch dữ liệu SỐ (giá trị thiếu, trùng lặp). Nhưng rất nhiều dữ liệu thật là văn bản — và văn bản thường lộn xộn hơn số nhiều: sai định dạng, thừa khoảng trắng, viết hoa/thường không nhất quán. Regex là công cụ chuẩn để xử lý hàng loạt.

Regex là gì — hiểu qua 1 ví dụ cụ thể

Regex (regular expression) là cách viết ra 1 “mẫu hình” mà máy có thể tự tìm trong văn bản, thay vì bạn phải tự đọc và tìm bằng tay.

import rere.findall(r”d{3}-d{4}”, text)# Tìm mọi số điện thoại dạng XXX-XXXX trong đoạn văn bản1 dòng regex = quét toàn bộ văn bản, không cần đọc từng dòng
Ví dụ: tìm mọi số điện thoại dạng XXX-XXXX trong 1 đoạn văn bản dài — chỉ 1 dòng lệnh, quét được toàn bộ.

Vài mẫu quen thuộc — và cách áp dụng cho cả cột dữ liệu

Vài mẫu regex hay dùng nhấtd+1 hoặc nhiều chữ số[A-Za-z]+@w+.w+Địa chỉ email^s+|s+$Khoảng trắng dư đầu/cuốipandas: df[“col”].str.replace(pattern, “”, regex=True) — áp regex cho CẢ CỘT dữ liệu cùng lúc
Ký hiệu regex nhìn lạ ban đầu, nhưng chỉ cần nhớ vài mẫu phổ biến nhất đã giải quyết được đa số bài toán dữ liệu văn bản thật gặp phải.

Điểm mạnh nhất khi kết hợp regex với pandas: có thể áp 1 mẫu regex cho toàn bộ 1 cột dữ liệu cùng lúc bằng .str.replace() hoặc .str.extract() — không cần viết vòng lặp thủ công qua từng dòng.

Xem thêm

Video này (tiếng Anh) dạy chi tiết cách viết và kiểm tra regex bằng module re của Python.

Checklist tự kiểm tra sau bài này
  • Bạn giải thích được regex là gì bằng 1 ví dụ đơn giản (không cần thuật ngữ kỹ thuật).
  • Bạn nhận diện được ý nghĩa của d+ và biết tra cứu thêm khi cần mẫu khác.
  • Bạn biết cách áp 1 mẫu regex cho cả 1 cột dữ liệu pandas, không chỉ 1 dòng.
Cần nhớ

Không cần nhớ hết mọi ký hiệu regex — hầu hết người làm dữ liệu thật cũng phải tra cứu lại mỗi lần cần mẫu phức tạp. Kỹ năng quan trọng hơn là biết KHI NÀO nên dùng regex (dữ liệu văn bản có mẫu hình lặp lại) và cách kiểm tra kết quả regex có đúng ý muốn không.

Câu hỏi thường gặp

Regex có giống nhau ở mọi ngôn ngữ lập trình không?

Nguyên lý và hầu hết cú pháp giống nhau (Python, JavaScript, SQL đều dùng regex tương tự) — học regex 1 lần dùng được ở nhiều nơi, không chỉ riêng Python.

Làm sao kiểm tra 1 mẫu regex có đúng không trước khi áp cho cả dữ liệu lớn?

Nên test trên 1 mẫu nhỏ dữ liệu thật trước (regex101.com là công cụ online phổ biến để thử regex trực quan), tránh áp nhầm cho toàn bộ dữ liệu rồi mới phát hiện sai.

Có bắt buộc phải giỏi regex để làm phân tích dữ liệu không?

Không bắt buộc phải “giỏi” — chỉ cần biết đủ để xử lý các trường hợp phổ biến (số, email, khoảng trắng dư) đã giải quyết được phần lớn nhu cầu thực tế.

Nguồn: Wes McKinney, Python for Data Analysis (3rd ed.), Chương 7, phần “Regular Expressions” và “String Functions in pandas” (O’Reilly, 2022). Nội dung diễn giải lại bằng lời riêng, không sao chép nguyên văn.