Regex cho hạng gà
Mở đầu
Mình định viết 1 loạt các bài về các công việc mình đang làm (đại khái liên quan tới log). Trước tiên là về Regex.
Để:
- Sau này mình có quên thì xem lại
- Và cũng là cứu vớt những tâm hồn lầm lỡ trong lúc túng quẫn đã gặp các vấn đề như mình đã gặp.
Các bạn thích thì like mà không thích thì like để mình có động lực ra bài nhé.
Regex là gì?
- Regex là viết tắt của từ Regular expression
- Regex trong tiếng Việt được dịch là "Biểu thức chính quy"
Regex được sử dụng như thế nào?
- Regex được sử dụng trong các tác vụ liên quan tới xử lý text: tìm kiếm, thay thế, trích xuất, sắp xếp...
- Regex được sử dụng trong nhiều ngôn ngữ lập trình PHP, JAVA, C#...
Cụ thể Regex làm gì, nói chung chung thế, cho một ví dụ xem nào.
-
Ví dụ bạn của bạn là 1 chủ shop nho nhỏ, vào một ngày đẹp trời quăng cho bạn rất nhiều file dạng thế này:
Anh Nguyễn Văn A có số điện thoại 0978245763. Anh Nguyễn Văn B có số điện thoại 0978068357....
-
Hắn nhờ bạn lấy list toàn bộ số điện thoại trong các đoạn văn bản trên để thực hiện hành vi spam tin nhắn giới thiệu sản phẩm của shop.
-
Vì tình nghĩa và cái mác IT là cái gì cũng làm được, bạn không thể từ chối. Nhưng làm thế nào đây?
-
Bạn không thể tay to copy từng chỗ từng chỗ một rồi paste vào 1 file.
(Đừng nói với tôi là bạn có thể làm việc đó nhé).
Đó bạn thấy chưa, đã đến lúc chúng ta cần sử dụng Regex. -
Bạn sẽ viết một đoạn định nghĩa chung cho tất cả các số điện thoại cần lấy trong file text trên, và Regex sẽ so khớp xem đoạn text nào phù hợp với đoạn định nghĩa bạn cung cấp.
-
Đoạn định nghĩa nó trông như thế nào?
Trông như thế này này:^[a-z0-9_-]{3,15}$
=> Có vẻ hay ho. Thêm chút công phu nào.
Tool
Để thuận tiện trong việc test và phát triển thì chúng ta dùng trang https://Regex101.com/ nhé.
Ở đó có cung cấp hầu hết những điều chúng ta cần liên quan tới Regex.
Như hình ở trên, bạn thấy đó, mình định nghĩa đoạn Regex mô tả các điểm chung của số điện thoại trong file
.([0-9]{10})
Rồi tool sẽ trả về cho mình các kết quả so khớp với đoạn Regex của mình.
Các bài tiếp theo mình sẽ viết cụ thể hơn để anh em nắm được.
Sau này có ai nhờ thì lôi ra dùng cho bớt khổ nhé anh em.
Leave a Reply