Regex là công cụ mạnh mẽ dùng để tìm kiếm, khớp và xử lý chuỗi ký tự trong các tập dữ liệu lớn. Trong bài viết này, mình sẽ chia sẻ chi tiết đến bạn về khái niệm Regex, các thành phần cơ bản của Regular Expression cũng như cách ứng dụng Regex hiệu quả trong thực tế.
Điểm chính cần nắm
- Định nghĩa Regex: Regex (Regular Expression) là chuỗi ký tự đặc biệt tạo mẫu để tìm kiếm, thay thế, phân tích dữ liệu và được ứng dụng rộng rãi trong lập trình và xử lý văn bản.
- Ưu và nhược điểm của Regex: Regex giúp kiểm tra và xử lý dữ liệu đầu vào nhanh, chính xác, nhưng khó học vì tính trừu tượng và khác biệt giữa các ngôn ngữ lập trình, đòi hỏi tư duy logic và sự tập trung cao.
- Cú pháp cơ bản của Regex: Regex hoạt động dựa trên mẫu tuân theo quy tắc nhất định, gồm ký tự đặc biệt và cú pháp như
\d
,\w
,[abc]
,*
,+
, giúp so khớp, tìm kiếm và xử lý chuỗi linh hoạt. - ERE – Biểu thức chính quy mở rộng: ERE là phiên bản nâng cao của Regex cơ bản, cung cấp thêm bộ định lượng và không cần thoát một số ký tự đặc biệt, với cú pháp tùy thuộc vào từng hệ thống hỗ trợ.
- Ứng dụng của Regex: Regex được sử dụng để tìm kiếm, thay thế, xác thực, và tách dữ liệu dựa trên mẫu, phổ biến trong xử lý chuỗi, phân tích dữ liệu, kiểm tra tính hợp lệ (email, URL) và trích xuất thông tin cụ thể.
- Hàm preg_match trong PHP: Hàm preg_match kiểm tra chuỗi có khớp với mẫu Regex hay không, trả về kết quả khớp qua biến
$matches
. Nó hỗ trợ xác thực chuỗi như số, chữ thường, hoặc chữ in hoa bằng các mẫu định sẵn. - Tạo Regular Expressions trong JavaScript: Regex trong JavaScript được tạo bằng cú pháp
/pattern/flags
hoặcnew RegExp(pattern, flags)
, với các flag nhưi
(không phân biệt hoa thường),g
(toàn bộ chuỗi), vàm
(nhiều dòng). - Cách viết viết Regex chi tiết: Cách viết Regex gồm sửa đổi biểu thức, sử dụng ký tự thường, ký tự đặc biệt, bộ định lượng, và khớp nhóm, giúp xây dựng các mẫu chính xác để xử lý và khớp dữ liệu hiệu quả.
- Hướng dẫn học Regex từ cơ bản đến nâng cao: Bắt đầu bằng hiểu khái niệm, học tài liệu uy tín, thực hành ví dụ, sử dụng công cụ trực tuyến, áp dụng vào thực tế, và tham gia cộng đồng để nâng cao kỹ năng Regex toàn diện.
- Dịch vụ VPS tại Vietnix: Với hơn 13 năm kinh nghiệm, Vietnix cung cấp VPS tốc độ cao, bảo mật tối ưu, cam kết uptime 99,9%, hỗ trợ 24/7, giúp tối ưu hóa kinh doanh và đáp ứng nhu cầu hơn 100.000 khách hàng.
- Giải đáp các câu hỏi thường gặp liên quan đến Regex: Như Regex trong Java, công cụ Regex online, test Regex,… giúp bạn hiểu rõ hơn và áp dụng hiệu quả biểu thức chính quy vào các công việc xử lý chuỗi và dữ liệu.
Regex là gì?
Regex là viết tắt của Regular Expression (biểu thức chính quy) một chuỗi các ký tự đặc biệt được định nghĩa để tạo nên các mẫu (pattern
) sử dụng trong phân tích cú pháp, sự trùng khớp, tìm kiếm, thay thế trong các chuỗi và đoạn ký tự. Regex
được ứng dụng trong hầu hết các ngôn ngữ lập trình hiện nay như như Java và Perl , đến các công cụ xử lý văn bản như grep , sed và trình soạn thảo văn bản vim. Đây được xem là một công cụ đắc lực và vô cùng mạnh mẽ dùng để phân tích, validate dữ liệu đầu vào.

Ưu và nhược điểm của Regex
Cùng mình tìm hiểu Ưu và nhược điểm của biểu thức quy chuẩn ở dưới đây nhé.
Vì các biểu thức chính quy có tác dụng để so khớp các dữ liệu đầu vào chi tiết và cụ thể hơn. Bạn có thể có thể kiểm tra, tìm lỗi và xử lý các tiện ích tìm kiếm các chuỗi từ người dùng nhập vào dựa vào những mẫu quy định sẵn. Chính vì đó nên ta có thể ràng buộc được những chi tiết các dữ liệu đầu vào nhanh chóng và chính xác.
Khó nắm bắt được vì nó khá trừu tượng và rắc rối. Regular expression đòi hỏi bạn phải có một chút tư duy logic và sự tập trung. Vì nó được hỗ trợ bởi hầu hết các ngôn ngữ lập trình hiện. Tuy nhiên điểm hạn chế lại là mỗi ngôn ngữ lại được hỗ trợ với biểu thức cách khác nhau. Nếu không bạn có thể sẽ tạo ra biểu thức không khớp như kết quả mình muốn.
Các cú pháp cơ bản Regular Expression
Nguyên tắc vận hành chính của biểu thức Regex
là so khớp dựa vào mẫu. Mẫu sẽ được xây dựng từ những quy tắc căn bản của biểu thức.
Regex
mang đến rất nhiều các ứng dụng hữu ích khác nhau. Tuy nhiên, nếu nhìn chung thì nền tảng mà chuỗi các ký tự mô tả một bộ chuỗi các ký tự khác. Nhưng có một điều chắc chắn rằng, tất cả đều phải tuân theo một quy tắc và cú pháp nhất định.
Bạn có thể tham khảo và áp dụng các cú pháp cơ bản của Regular Expression
mà mình đã tổng hợp dưới đây:
Ký tự | Ý nghĩa |
---|---|
abcdef... | Chữ cái. |
123... | Số. |
\d | Bất kỳ số nào. |
\D | Bất kỳ ký tự nào, ngoại trừ số. |
. | Bất kỳ ký tự nào (trừ ký tự xuống dòng). |
[abc] | Chỉ được là một trong các ký tự a , b , hoặc c . |
[^abc] | Không được có các ký tự a , b , hoặc c . |
[0-9] | Số từ 0 đến 9 . |
\w | Bất kỳ ký tự chữ cái hoặc số nào (bao gồm _ ). |
\W | Bất kỳ ký tự nào, ngoại trừ chữ cái, số, và _ . |
{m} | Ký tự hoặc mẫu trước đó lặp lại đúng m lần. |
{m, n} | Ký tự hoặc mẫu trước đó lặp lại tối thiểu m lần và tối đa n lần. |
^ | Ký tự bắt đầu của chuỗi nhập. Ví dụ: ^A nghĩa là A phải là ký tự đầu tiên trong chuỗi. |
$ | Ký tự kết thúc của chuỗi nhập. Ví dụ: $B nghĩa là B phải là ký tự cuối cùng trong chuỗi. |
. | Đại diện cho bất kỳ ký tự nào (trừ ký tự xuống dòng). |
* | Ký tự hoặc mẫu trước đó có thể lặp lại 0 hoặc nhiều lần. Ví dụ: ri*t có thể là rt , rit , riit … |
+ | Ký tự hoặc mẫu trước đó lặp lại ít nhất 1 lần. Ví dụ: ri+t có thể là rit , riit , riiit … |
ERE – Biểu thức chính quy mở rộng
Biểu thức chính quy mở rộng (ERE) là một dạng mở rộng của các biểu thức chính quy cơ bản.
ERE cung cấp thêm các bộ định lượng (quantifier) bổ sung, không yêu cầu phải thoát (escape) một số ký tự đặc biệt (metacharacter) và tuân theo các quy tắc đặc biệt khác. Nếu ứng dụng của bạn hỗ trợ biểu thức chính quy mở rộng, hãy tham khảo tài liệu hướng dẫn sử dụng của hệ thống để nắm rõ cú pháp chính xác.
Ứng dụng Regex
Nguyên lý hoạt động của biểu thức chính quy (RegEx) là tìm kiếm và khớp các chuỗi dữ liệu dựa trên một mẫu (pattern) được xây dựng từ các quy tắc cơ bản. Để nắm vững cách sử dụng Regular Expression, bạn có thể thử nghiệm hàm preg_match
trong PHP, kèm theo một vài ví dụ đơn giản nhằm thực hành trước khi khám phá các nội dung chuyên sâu hơn.
Regex được ứng dụng phổ biến trong nhiều lĩnh vực, chẳng hạn như xử lý chuỗi ký tự, phân tích dữ liệu, xác thực thông tin đầu vào hoặc thực hiện các thao tác tìm kiếm và thay thế trong văn bản.
Regex
thường được ứng dụng vào các trường hợp sau:
- Kiểm tra tính hợp lệ của dữ liệu: Email, URL có hợp lệ không, kiểm tra số điện thoại Việt Nam. Hay kiểm tra độ dài của câu có nằm trong một khoảng (x, y),…
- Tìm kiếm và thay thế: Bạn có thể
regex
với chưa đến 10 dòng code, file nhỏ mở text editor là xong và không cần đến code. - Xác thực dữ liệu: Đóng vai trò quan trọng trong việc đảm bảo thông tin nhập vào đáp ứng đúng định dạng được quy định, ví dụ như kiểm tra email hoặc số điện thoại có hợp lệ không.
- Tách dữ liệu: Là phương pháp phân tích văn bản và trích xuất các phần thông tin cụ thể dựa trên các mẫu định sẵn.

Nếu bạn đang tìm kiếm một giải pháp lưu trữ mạnh mẽ, ổn định và tốc độ cao để hỗ trợ các ứng dụng hoặc website của mình, VPS AMD Vietnix chính là lựa chọn hoàn hảo. Với sự kết hợp vượt trội từ CPU AMD EPYC và ổ cứng NVMe Enterprise siêu tốc, dịch vụ này mang lại hiệu năng tối ưu, đảm bảo khả năng xử lý mạnh mẽ và tốc độ truy xuất dữ liệu vượt trội. Hãy trải nghiệm ngay VPS AMD tại Vietnix để đưa dự án của bạn lên một tầm cao mới!
Hàm Preg_match trong php
Hàm preg_match
trong PHP được sử dụng để kiểm tra một chuỗi có khớp với mẫu Regex Pattern hay không. Cú pháp của hàm như sau:
preg_match($pattern, $subject, $matches)
- $pattern: Mẫu biểu thức chính quy cần kiểm tra.
- $subject: Chuỗi nguồn sẽ được so khớp với mẫu Regex.
- $matches: Danh sách các kết quả khớp được trả về nếu phù hợp.
Ví dụ 1: Kiểm tra một chuỗi có phải là số.
if (preg_match('/^[0-9]+$/', '123', $matches)) {
var_dump($matches);
}
Kết quả:
array
0 => string '123' (length=3)
Ví dụ 2: Kiểm tra một chuỗi có phải là các ký tự thường.
if (preg_match('/^[a-z]+$/', 'vietnix', $matches)) {
var_dump($matches);
}
Kết quả trả về:
array
0 => string 'vietnix' (length=6)
Ví dụ 3: Kiểm tra chuỗi có phải toàn bộ là chữ in hoa.
if (preg_match('/^[A-Z]+$/', 'VIETNIX', $matches)) {
var_dump($matches);
}
Kết quả trả về:
array
0 => string 'VIETNIX' (length=7)
Với ví dụ trên, bạn có thể dễ dàng hiểu cách sử dụng hàm preg_match
để kiểm tra tính hợp lệ của chuỗi dựa trên các mẫu Regex.
Cách tạo ra 1 Regular Expressions trong JS
Regex
trong javascript là một chuỗi nhưng không được bao quanh bởi cặp dấu nháy đơn ‘ hoặc nháy kép “. Mà nó là chuỗi được bao quanh bởi cặp dấu /. Có 2 để bạn có thể tạo Regular Expressions, đó là:
Cú pháp:
new RegExp(pattern<, flags>).
Ví dụ: var regexConst = new RegExp("abc")
; Hoặc có thể sử dụng dấu /
Cú pháp:
/pattern/flags.

Trong đó:
pattern
là một chuỗiRegular Expression Flags
thông số cấu hình cho chuỗipattern
và nó có tổng các giá trị.i
là so khớp không quan tâm đến chữ cái hoa hay chữ thường.g
là so khớp toàn bộ chuỗi cần tìm. Cònm
là so khớp luôn cả các dữ liệu xuống dòng (multiline).
Ví dụ: Khi Pattern
kiểm tra chuỗi có tồn tại chữ “mbachulski.com” không thì sẽ không phân biệt giữa chữ hoa chữ thường. Nó sẽ quét và tìm toàn bộ tài liệu:
var pattern = /mbachulski.com/igm;pattern
là mbachulski.comflags
là igm
.
Cách viết Regex expression chi tiết
Regex
có những cách viết điển hình và được nhiều lập trình viên sử dụng. Bao gồm so khớp chuỗi, tách chuỗi, tìm kiếm trong chuỗi, thay thế chuỗi… Cách viết chi tiết bạn có thể tham khảo ngay dưới đây:
1. Sửa đổi biểu thức
Biểu thức | Ý nghĩa |
---|---|
i | Tìm kiếm không phân biệt chữ cái hoa hay chữ thường. |
m | Tìm kiếm nhiều dòng. |
u | Đối sánh chính xác các mẫu được mã hóa bởi UTF-8. |
2. Ký tự thường
Biểu thức | Ý nghĩa | Chú ý |
---|---|---|
a | b | Tìm ký tự khớp với a hoặc b | |
[0 – 9] | Tìm ký tự khớp với số từ 1 đến 9 | |
[a – z] | Khớp với những chữ từ a – z | |
[abc] | Có thể khớp với chữ a, b hoặc là c | |
[^abc] | Không khớp với a, b hoặc là c | Dấu ^ nếu xuất hiện sau dấu ngoặc vuông thì là có nghĩa là phủ định |
\d | Số bất kỳ | Thay thế cho [0-9] |
\D | Ký tự không phải là số | Thay thế [^0-9] |
\s | Ký tự khoảng trắng | |
\S | Không là ký tự của khoảng trắng | Thay thế [^\s] |
\w | Ký tự chữ | |
\W | Ký tự không phải chữ | Thay thế [^\w] |
\b | Ký tự thuộc a – z hoặc A – Z hoặc 0-9 hoặc là _ |
3. Ký tự đặc biệt
Biểu thức | Ý nghĩa |
---|---|
| | Tìm ra kết quả phù hợp cho bất kỳ một trong số các mẫu tương tự như or |
. | Chỉ tìm một trường hợp của bất kỳ ký tự nào và khớp với bất kỳ ký tự đơn nào ngoài |
^ | Tìm ra kết quả phù hợp ở đầu của một chuỗi |
$ | Tìm ra kết quả phù hợp ở cuối của chuỗi |
\d | Tìm một chữ số |
\s | Tìm một ký tự khoảng trắng |
\b | Tìm một kết quả phù hợp ở đầu một từ hoặc cuối một từ |
\uxxxx | Tìm ký tự unicode được chỉ định bởi số lục phân xxxx |
/ | Bắt đầu hoặc kết thúc chuỗi |
\ | Biểu diễn một ký tự ngay sau, từ ký tự đặc biệt thành ký tự thường và ngược lại |
4. Bộ định lượng
Biểu thức | Ý nghĩa |
---|---|
n+ | Khớp với bất kỳ chuỗi nào có chứa ít nhất một n |
n* | Khớp với bất kỳ chuỗi nào không có hay có nhiều lần xuất hiện của n |
n? | Khớp với bất kỳ chuỗi nào có chứa 0 hay 1 lần xuất hiện của n |
n{x} | Khớp với bất kỳ chuỗi nào chứa 1 chuỗi X n |
n{x,y} | Khớp với bất kỳ những chuỗi có chứa chuỗi X với chuỗi Y n |
n{x,} | Đối sánh bất kỳ những chuỗi có chứa ít nhất là 1 chuỗi gồm X n |
5. Khớp nhóm
Biểu thức | Ý nghĩa |
---|---|
() | Chọn ra các phần từ của mẫu được sử dụng để làm đối sánh |
(? : x) | Khớp với x nhưng không rõ chính xác kết quả khớp |
x(?=y) | Chỉ khớp được với x nếu như ngay sau x làexpression y |
X(?!y) | Chỉ khớp được với x nếu ngay sau x không là y |
Hướng dẫn học Regex từ cơ bản đến nâng cao
1. Hiểu khái niệm cơ bản
- Tìm hiểu định nghĩa Regex (Regular Expression) là gì và ứng dụng của nó trong việc xử lý chuỗi ký tự.
- Nắm vững các ký tự đặc biệt như
.
(khớp bất kỳ ký tự nào),*
(0 hoặc nhiều lần),+
(1 hoặc nhiều lần),^
(bắt đầu chuỗi),$
(kết thúc chuỗi), và cách sử dụng các nhóm()
hoặc tập hợp[]
. - Học cách tạo các mẫu (pattern) đơn giản để khớp chuỗi số, chữ cái, hoặc các ký tự cụ thể.
2. Học qua tài liệu chính thống
- Đọc tài liệu từ các nguồn uy tín như Regex101, RegExr, hoặc sách chuyên ngành như “Mastering Regular Expressions”.
- Sử dụng các khóa học trực tuyến từ các nền tảng như Coursera, Udemy, hay YouTube để có hướng dẫn chi tiết.
- Tìm hiểu về các chuẩn Regex khác nhau (POSIX, PCRE, v.v.) để hiểu cách Regex hoạt động trong từng ngữ cảnh.

3. Thực hành với ví dụ đơn giản
- Viết các mẫu Regex để kiểm tra chuỗi như: số điện thoại, email, hoặc các chuỗi văn bản cơ bản.
- Tự thực hành các bài tập như: kiểm tra ngày tháng định dạng
dd/mm/yyyy
, tìm chuỗi bắt đầu bằng một ký tự cụ thể. - Thử nghiệm những mẫu đơn giản để hiểu rõ cách từng ký tự Regex hoạt động.
4. Sử dụng công cụ trực tuyến
- Truy cập các công cụ như Regex101 để kiểm tra và xem giải thích từng phần của Regex một cách trực quan.
- Thử nghiệm nhiều mẫu Regex khác nhau trên RegExr với giao diện thân thiện và ví dụ minh họa.
- Tận dụng Regex Planet để kiểm tra Regex trên các ngôn ngữ lập trình cụ thể như Python, Java, hoặc PHP.
5. Nâng cao với ứng dụng thực tế
- Áp dụng Regex trong các dự án lập trình như: lọc dữ liệu đầu vào, tìm kiếm và thay thế chuỗi trong tệp văn bản, hoặc xác minh biểu mẫu (form validation).
- Tích hợp Regex vào các ngôn ngữ lập trình như Python (
re
module), Java (java.util.regex
package), hoặc PHP (preg_match
). - Sử dụng Regex để xử lý các tác vụ phức tạp như trích xuất thông tin từ tệp log hoặc phân tích dữ liệu văn bản.
6. Tham gia cộng đồng
- Đặt câu hỏi và thảo luận trên các diễn đàn như Stack Overflow, Reddit, hoặc Quora để nhận lời khuyên từ các chuyên gia.
- Tham gia các nhóm công nghệ trên Facebook, Zalo, hoặc Telegram có chủ đề về lập trình và Regex.
- Chia sẻ các mẫu Regex bạn tạo ra và học hỏi từ các ví dụ thực tế của cộng đồng.
Nếu tuân thủ các bước trên, bạn sẽ nhanh chóng thành thạo Regex và áp dụng hiệu quả vào các dự án thực tế.
Dịch vụ VPS tại Vietnix: Tốc độ cao, bảo mật tối ưu, hỗ trợ tận tâm
Hơn 13 năm đồng hành cùng cộng đồng cá nhân và doanh nghiệp, Vietnix đã khẳng định mình là nhà cung cấp VPS hàng đầu tại Việt Nam với hơn 100.000 khách hàng tin tưởng. Cam kết uptime đạt 99,9%, Vietnix mang đến sự an tâm tuyệt đối cho mọi dự án trực tuyến. Sự kết hợp giữa công nghệ ảo hóa tiên tiến, ổ cứng NVMe hiệu suất cao, cùng đội ngũ kỹ thuật nhiệt tình luôn sẵn sàng hỗ trợ 24/7, Vietnix sẽ giúp bạn tối ưu hóa mọi hoạt động kinh doanh và chinh phục những mục tiêu lớn hơn.
Thông tin liên hệ:
- Hotline: 18001093.
- Email: sales@vietnix.com.vn.
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Câu hỏi thường gặp
Regex
ở trong Python là gì?
Regex
hay còn gọi là biểu thức chính quy, là một chuỗi các ký tự cấu thành một mẫu tìm kiếm. Regex
có thể được dùng để kiểm tra xem thử một chuỗi có chứa mẫu tìm kiếm được chỉ định hay không.
Regex
có phải là một ngôn ngữ lập trình không?
Regex
có các thuật ngữ, điều kiện và cú pháp riêng biệt, nhưng theo một nghĩa nào đó, nó cũng được coi là một ngôn ngữ lập trình nhỏ. Regex
có thể được dùng để thêm, xóa hoặc cô lập tất cả các loại văn bản và dữ liệu. Nó có thể được dùng như một lệnh soạn thảo văn bản đơn giản. Ví dụ như là tìm kiếm, thay thế hay là ngôn ngữ xử lí mạnh mẽ văn bản của nó.
Regex101 là gì và làm sao để sử dụng công cụ này?
Regex101 là công cụ trực tuyến miễn phí hỗ trợ tạo, kiểm tra và chỉnh sửa biểu thức chính quy (Regex). Để sử dụng, bạn chỉ cần truy cập regex101.com, nhập Regex và chuỗi cần kiểm tra, công cụ sẽ hiển thị kết quả khớp và giải thích chi tiết từng phần của Regex.
Có những công cụ trực tuyến nào hỗ trợ kiểm tra Regex?
Dưới đây là các công cụ trực tuyến phổ biến hỗ trợ kiểm tra Regex:
– Regex101 – Hiển thị kết quả khớp và giải thích từng phần của Regex.
– RegExr – Cung cấp giao diện thân thiện và ví dụ minh họa.
– Regex Planet – Hỗ trợ kiểm tra Regex trên nhiều ngôn ngữ lập trình.
– Debuggex – Trực quan hóa Regex bằng biểu đồ.
– Online Regex Tester – Công cụ đơn giản để kiểm tra Regex nhanh chóng.
Tất cả đều dễ sử dụng và hữu ích cho cả người mới học lẫn chuyên gia.
Regular Expression có khác gì so với Regex không?
Regular Expression và Regex là một, chỉ khác cách gọi. Regular Expression là tên đầy đủ, dùng trong tài liệu chính thức, còn Regex là viết tắt, phổ biến trong thực tế. Cả hai đều dùng để xử lý và tìm kiếm chuỗi ký tự.
Trên đây là toàn bộ chia sẻ của mình về Regex, các khái niệm cơ bản và cách ứng dụng biểu thức chính quy trong thực tế. Có thể thấy Regex không chỉ là một công cụ mạnh mẽ để xử lý chuỗi ký tự mà còn là giải pháp đắc lực cho các nhà phát triển trong việc tối ưu hóa quy trình làm việc với dữ liệu. Nếu bạn muốn khám phá thêm về các kiến thức chuyên sâu liên quan đến lập trình và xử lý dữ liệu, hãy tham khảo một số bài viết dưới đây của mình: