Chào các bác, dạo này em đang mày mò về xử lý chuỗi ký tự trong Python, đặc biệt là dùng Regular Expression (Regex). Em thấy cái này cực kỳ mạnh mẽ để tự động hóa các tác vụ liên quan đến văn bản mà Excel hay các công cụ thông thường khó làm được.
Ví dụ, em có một file log với hàng ngàn dòng, mỗi dòng chứa thông tin về thời gian, loại sự kiện và mô tả. Em muốn trích xuất tất cả các địa chỉ email hoặc các mã đơn hàng có định dạng đặc biệt. Dùng các hàm xử lý chuỗi thông thường của Python thì hơi lằng nhằng, nhưng với Regex thì chỉ vài dòng code là xong.
Cú pháp Regex có thể hơi khó nhằn lúc đầu, nhưng một khi đã quen thì nó mở ra cả một thế giới mới. Ví dụ, để tìm tất cả các chuỗi có định dạng email, mình có thể dùng mẫu như sau:
import re
text = "Liên hệ với support@example.com hoặc sales@domain.org để được hỗ trợ."
emails = re.findall(r'[\w\.-]+@[\w\.-]+', text)
print(emails)Kết quả sẽ là:
['support@example.com', 'sales@domain.org']Hoặc nếu muốn tìm các mã đơn hàng theo dạng "DH-XXXXX" (với X là số):
import re
text = "Đơn hàng DH-12345 đã được xác nhận. Mã vận đơn: VN98765. Đơn hàng DH-67890 đang chờ xử lý."
orders = re.findall(r'DH-\d{5}', text)
print(orders)Kết quả:
['DH-12345', 'DH-67890']Regex còn có thể dùng để thay thế chuỗi, chia tách chuỗi, kiểm tra định dạng... rất nhiều ứng dụng. Em nghĩ đây là một kỹ năng rất đáng để đầu tư cho anh em nào hay phải xử lý dữ liệu dạng văn bản, log file, hoặc cần tự động hóa các tác vụ phức tạp mà Excel không kham nổi.
Không biết có bác nào trong diễn đàn đã ứng dụng Regex vào công việc chưa? Chia sẻ kinh nghiệm hoặc các pattern hay dùng cho mọi người tham khảo với ạ!