Regular Expression là gì

Bài ngày hôm nay tôi sẽ chia sẻ cùng các bạn về Regular Expression, một trong những thành phần quan trọng nhất trong form validation và sử dụng nhiều trong tìm kiếm, thay thế, và hệ thống crawling website.

Bài viết được dịch từ nguồn từ 9lessions của tác giả Arun Kumar Sekar. Và chúng ta cùng đi tìm hiểu một vài thành phần cơ bản của Regular Expression thông qua các ví dụ cụ thể sẽ giúp bạn hiểu sâu hơn.

Regular Expression là gì?

Regular Expression là gì

Regular Expression còn gọi ngắn gọn là Regex – Tập hợp các phép xử lý văn bản như tìm kiếm, so khớp, cắt ghép… Regex làm việc dựa trên những mẫu văn bản theo các quy tắc định sẵn trước để từ đó xử lý những văn bản khác theo các yêu cầu khác nhau. Các mẫu văn bản có sẵn gọi là partern. Để sử dụng Regex trong C# bạn cần sử dụng namespace System.Text.RegularExpression. Trong các bài tiếp theo chúng ta sẽ lần lượt làm rõ từng khái niệm, thuộc tính, phương thức trong Regular Expression – Microsoftech.net

Nhóm thành phần 1

Symbol Explanation
^ Bắt đầu một chuỗi
$ Kết thúc một chuỗi
. Bất kỳ giá trị đơn nào
+ Một hoặc nhiều ký tự
\ Ký tự đặc biệt
? 0 hoặc nhiều ký tự

Ví dụ

Đầu vào chính xác là “abc”

Đầu vào bắt đầu “abc”

Đầu vào kết thúc bằng “abc”

Đầu vào là “abc” và tiếp sau thêm 1 ký tự bất kỳ

Đầu vào là “abc” và tiếp theo là một hoặc nhiều ký tự bất kỳ

Đầu vào chính xác là abc.def

Cho phép môt hoặc nhiều ký tự bất kỳ sau “abc”

Nhóm thành phần 2

Char Group Explanation
[abc] Should match any single of character
[^abc] Should not match any single character
[a-zA-Z0-9] Ký tự nằm trong khoảng từ a tới z, chữ hoa và số từ 0 tới 9
[a-z-._] Ký tự nằm trong khoảng từ a tới z và thêm một ký tự đặc biệt
(.*?) Tất cả mọi thứ kèm theo dấu ngoặc
(com|info) Đầu vào lựa chọn “com” hoặc “info”
{2} Có chính xác 2 ký tự
{2,3} Tối thiểu 2 ký tự, tối đa 3 ký tự
{2,} Nhiều hơn 2 ký tự

Ví dụ

Nhóm thành phần thứ 3

Short Form Equivalent Explanation
\d [0-9] Bất kỳ một số nào
\D [^0-9] Bất kỳ một ký tự không phải số
\w [a-zA-Z0-9_] Ký tự, số, và gạch dưới
\W [^a-zA-Z0-9_] Ngoại trừ ký tự chữ, số và gạch dưới
\s Ký tự là khoảng trắng
\S Không được ký tự khoảng trắng

Ví dụ