Regex là gì? Ứng dụng và cách viết Regex chi tiết nhất

Regex được biết đến là tập hợp các mẫu có khả năng thay thế cho chuỗi ký tự phức tạp và được dùng nhiều trong lập trình. Tuy nhiên, người dùng cần hiểu rõ Regex là gì và nắm được một số cú pháp cơ bản để ứng dụng một cách linh hoạt và có hiệu quả. Bài viết này sẽ là mang đến kiến thức nền tảng cho người dùng về Regex và gợi ý cách viết Regex dễ hiểu, dễ thực hiện. 

Regex là gì?

Regex là từ viết tắt của “Regular Expression”, được hiểu là biểu thức chính quy. Đó là tập hợp các mẫu (pattern) hay còn gọi là chuỗi các kí tự đặc biệt, được sử dụng chủ yếu trong phân tích cú pháp, tìm kiếm (Find), thay thế (Replace) và khám phá sự trùng lặp văn bản khi lập trình. 

Tốc độ xử lý của Regex tương đối mạnh, và được ưa chuộng trong Php, JavaScript cũng như một số ngôn ngữ lập trình khác. Người dùng chỉ cần hiểu và nắm rõ thuật toán của Regex là có thể tối ưu khả năng và tính ưu việt của loại biểu thức này.   

Dạng cú pháp cần nhớ trong Regular Expression

Mỗi loại ngôn ngữ lập trình sẽ có những yêu cầu riêng khi áp dụng Regex. Điều này đòi hỏi sự kỹ lưỡng, cũng như khả năng xử lý linh hoạt từ người dùng. Sau đây là một số dạng cú pháp cơ bản của biểu thức Regular Expression.

 

Ý nghĩa

Ví dụ

Mô tả

$

Kết thúc của chuỗi nhập ký tự

X$

X chỉ ký tự cuối cùng trong chuỗi

^

Bắt đầu của chuỗi nhập ký tự

^B

B chỉ ký tự đầu tiên trong chuỗi

*

Kí tự đứng trước có thể lặp lại 0 hoặc nhiều lần

ra*t

rt, rat, raat,... and so on

.

Bất kì kí tự nào ngoại trừ ký tự xuống dòng (\n)

i.ation

ization

+

Kí tự đứng trước có thể được lặp lại 1 hoặc nhiều lần hơn

ra+t

rat, raat, raaat, and so on (not rt)

?

Ký tự trước có thể được lặp lại 1 hoặc 0 lần

na?t

nt or nat only

\s

Bất kì kí tự khoảng trắng nào 

\sa

[space]a, \na, \da 

\S

Bất kì kí tự nào không có khoảng trắng 

\SF

aF, cF, rF, but not \tF

\B

Từ biên

ion\b

any word ending in ion

\b

Bất kì vị trí nào không phải tính từ biên

\BX\B

Bất kì kí tự X ở giữa của 1 từ 

Ứng dụng của Regex trong lập trình 

Biểu thức Regex được phát triển dựa trên “so khớp” đối với “mẫu” (pattern) để hoàn thiện phân tích cú pháp. Cho nên, khi ứng dụng trên bất kỳ ngôn ngữ lập trình nào, người dùng cần phải ghi nhớ nguyên tắc này để thực hành có hiệu quả. Cụ thể: 

Sử dụng hàm Preg_match trong Php

  • Cú pháp: preg_match($pattern, $subject, $matches) .Trong đó: 
  • $pattern: là chuỗi Regex Pattern
  • $subject: là chuỗi nguồn được sử dụng để so khớp lệnh với $pattern
  • $matches: là danh sách tập hợp các kết quả trả về đúng khi thực hiện xong so khớp 2 chuỗi trên 

Ví dụ: Kiểm tra một chuỗi ký tự là các kí tự viết hoa 

if (preg_match('/^[A-Z]+$/', 'HAPPY', $matches)){

    var_dump($matches);

}

Kết quả

array 

0 = > string ‘HAPPY’ (length=5)

Tạo mới Regular Expressions trong JavaScript (JS)

Khi sử dụng biểu thức Regex trong JavaScript (JS), nó không được bao quanh bởi cặp dấu nháy kép hoặc dấu nháy đơn mà được tạo nên bởi cặp dấu (/). Dưới đây là hai cách tạo, tương ứng với hai dòng cú pháp: 

  • Cú pháp: new RegExp(pattern[, flags]) 
  • Ví dụ: var regexConst = new RegExp ( ‘cef’);

Hoặc dùng dấu (/)

  • Cú pháp: /pattern/flags .Trong đó:
  • flags: là thông số cấu hình của chuỗi pattern trong Regex và nó có các giá trị tương ứng như sau: i-so khớp không quan tâm đến chữ thường, chữ hoa; m-so khớp bao gồm cả dữ liệu xuống dòng; g-so khớp toàn bộ dữ liệu chuỗi cần tìm. 
  • pattern: là chuỗi Regex 
  • Ví dụ: Để kiểm tra chuỗi có tồn tại chữ “happy” không, yêu cầu so khớp toàn bộ dữ liệu cần tìm và không quan tâm đến chữ hoa, chữ thường. 
  • Cú pháp là: var pattern = /happy/igm; 

Xác minh tính hợp lệ của dãy dữ liệu

Regex được sử dụng nhiều trong quá trình xác minh tính hợp lệ thông tin của người dùng (email, số điện thoại Việt Nam) hoặc một trang web, đường link cụ thể. Ngoài ra, người lập trình hoàn toàn có thể dùng để thực hiện một số thao tác tính toán đơn giản như kiểm tra độ dài của câu có thuộc hoặc nằm trong khoảng (x,y) hay không. 

Tìm kiếm và thay thế chuỗi ký tự

Để tiết kiệm tối đa thời gian tìm và thay thế dữ liệu khi lập trình, người dùng sử dụng Regex để hạn chế viết code phức tạp, mở trực tiếp file text editor để chỉnh sửa một cách chính xác. Một số hướng dẫn cơ bản khi ứng dụng tính năng này, bao gồm: 

  • Bước 1: Nhấn tổ hợp phím Ctrl + H
  • Bước 2: Kích hoạt chế độ Regex bằng cách nhấp đúp chuột vào biểu (.*) ở cùng hàng với ô Find trong cửa sổ tìm kiếm hoặc tổ hợp phím Alt + R
  • Bước 3: Nhập biểu thức cần tìm vào ô Find
  • Bước 4: Nhập biểu thức cần thay thế cho biểu thức đã tìm vào ô Replace 
  • Bước 5: Chọn Replace All để thấy kết quả 

Hướng dẫn viết Regex cơ bản

Để người dùng có thể làm quen và hiểu được một số nguyên tắc khi viết Regex, sau đây là một số gợi ý cơ bản cho người mới sử dụng. Cụ thể là:  

Quy định với kí tự thường

Biểu thức

Giải thích

a | b

Khớp với a hoặc b

[a-z]

Khớp với một trong những chữ thuộc khoảng ký tự từ a đến z

[0-9]

Khớp với một trong những số từ 0 đến 9

[abc]

Có thể khớp với một trong ba kí tự a, b hoặc c

[^abc]

Khớp với bất kì kí tự nào ngoài a, b, và c đều hợp lệ 

d

Số bất kỳ (sử dụng hay thế cho [0-9]

D

Kí tự không phải là số (sử dụng hay thế cho [^0-9]

s

Kí tự khoảng trắng

S

Không phải ký tự khoảng trắng (sử dụng hay thế cho [^s])

w

Kí tự chữ (sử dụng hay thế cho [a-zA-Z0-9])

W

Kí tự không phải chữ (sử dụng thay thế cho [^w])

b

Kí tự thuộc A-Z hoặc 0-9 hoặc a-z hoặc _ (sử dụng thay thế cho [a-zA-Z0-9_]) 

Quy định với kí tự đặc biệt

Biểu thức

Giải thích

Sử dụng tương đương với phép “or” (Thường được sử dụng với cặp dấu ngoặc tròn)

^

Bắt đầu từ/chuỗi ký tự

$

Kết thúc từ/chuỗi ký tự

.

Khớp với tất cả các kí tự đơn nào ngoại trừ ……..

/

Sử dụng để bắt đầu hoặc kết thúc bất kỳ chuỗi Regex nào 

Quy định “lặp”

Biểu thức

Giải thích

Xuất hiện 0 hoặc nhiều lần (Có thể viết là {0,})

?

Xuất hiện 0 hoặc 1 lần (Có thể viết là {0,1})

+

Xuất hiện 0 hoặc 1 lần (Có thể viết là {1,})

{X}

Xuất hiện X lần (X không thể là số âm)

{X,Y}

Xuất hiện trong khoảng X tới Y lần (Cả X và Y không thể là số âm)

Quy định với “khớp nhóm”

Biểu thức

Giải thích

() 

Khớp với một nhóm các kí tự và ghi nhớ kết quả khớp

x(?=y)

Chỉ khớp với “x” nếu ngay sau “x” là “y”

(?:x)

Khớp với “x” và không nhớ kết quả khớp

x(?!y)

Chỉ khớp “x” nếu ngay sau “x” không phải là “y”

Quy định với “sửa đổi biểu thức”

Biểu thức

Giải thích

i

Tìm kiếm ký tự không phân biệt chữ thường hay chữ hoa

u

Đối chiếu và so sánh tính chính xác các mẫu được mã hỏi bởi UTF-8

m

Tìm kiếm ký tự bao gồm cả dữ liệu xuống dòng

g

So khớp toàn bộ dữ liệu chuỗi cần tìm

Trên đây là toàn bộ những thông tin cơ bản và quan trọng nhất mà người dùng nên nhớ khi sử dụng Regex. Người dùng nên hiểu rõ thuật toán của biểu thức Regex và nắm được các dạng cú pháp thường gặp để ứng dụng một cách linh hoạt. Đừng quên cập nhật và tìm hiểu thêm kiến thức về lập trình tại LPTech để nâng cao kiến thức và hỗ trợ hiệu quả hơn trong học tập, làm việc. 

Thông tin liên hệ

Nếu bạn có thắc mắc gì, có thể gửi yêu cầu cho chúng tôi, và chúng tôi sẽ liên lạc lại với bạn sớm nhất có thể .

Công ty TNHH TMĐT Công nghệ LP

Giấy phép kinh doanh số 0315561312/GP bởi Sở Kế Hoạch và Đầu Tư TP. Hồ Chí Minh.

Văn phòng: Lầu 4, Toà nhà Lê Trí, 164 Phan Văn Trị, phường Bình Thạnh, TP. HCM.

Hotline: 0338 586 864

Mail: sales@lptech.asia

Zalo:LP Tech Zalo Official

Liên hệ qua Zalo: 0338586864 ( hoặc bấm vào link này: http://lptech.asia/zalo-lptech). Hoặc nhập thông tin mà bạn cần hỗ trợ vào ô liên hệ bên dưới để lên lạc với LPTech nhé.

Bài viết cùng chuyên mục

Zalo Mini App ngành chăm sóc sức khỏe: Tối ưu vận...

Zalo Mini App ngành chăm sóc sức khỏe giúp tối ưu vận hành, nâng cao trải nghiệm bệnh nhân và tăng tỷ lệ tái khám. Khám phá ngay giải...

Zalo Mini App ngành gia dụng: Giải pháp bảo hành...

Zalo Mini App ngành gia dụng giúp doanh nghiệp tối ưu vận hành, quản lý khách hàng và tăng doanh thu hiệu quả. Khám phá ngay tính năng,...

Zalo Mini App ngành thời trang: Tạo trải nghiệm...

Zalo Mini App ngành thời trang giúp tối ưu hành trình mua sắm của khách hàng. Khám phá ngay cách triển khai để không bỏ lỡ cơ hội bứt phá...

Zalo Mini App Ngành F&B: Nâng Tầm Lợi Thế Cạnh Tranh

Khám phá cách Zalo Mini App ngành F&B giúp doanh nghiệp bứt phá khả năng cạnh tranh và giữ chân khách hàng hiệu quả. Xem ngay.

Zalo Mini App Bất Động Sản: Giải Pháp Đột Phá...

Chuyển đổi số ngành địa ốc với Zalo Mini App bất động sản. Giải pháp giúp doanh nghiệp tiếp cận 80 triệu người dùng. Xem ngay.

Zalo Mini App Ngành Trang Sức: Đón Sóng Tăng...

Khám phá cách Zalo Mini App ngành trang sức hỗ cập doanh nghiệp chăm sóc khách hàng và đột phá doanh thu. Xem ngay.

Bài viết mới nhất


Zalo Mini App ngành chăm sóc sức khỏe: Tối ưu...

Zalo Mini App ngành chăm sóc sức khỏe giúp tối ưu vận hành, nâng cao trải nghiệm bệnh nhân và tăng tỷ lệ tái khám. Khám phá ngay giải pháp hiệu quả.

Zalo Mini App ngành gia dụng: Giải pháp bảo...

Zalo Mini App ngành gia dụng giúp doanh nghiệp tối ưu vận hành, quản lý khách hàng và tăng doanh thu hiệu quả. Khám phá ngay tính năng, lợi ích chi...

Zalo Mini App ngành thời trang: Tạo trải nghiệm...

Zalo Mini App ngành thời trang giúp tối ưu hành trình mua sắm của khách hàng. Khám phá ngay cách triển khai để không bỏ lỡ cơ hội bứt phá doanh thu.

Zalo Mini App Ngành F&B: Nâng Tầm Lợi Thế Cạnh...

Khám phá cách Zalo Mini App ngành F&B giúp doanh nghiệp bứt phá khả năng cạnh tranh và giữ chân khách hàng hiệu quả. Xem ngay.

Zalo Mini App Bất Động Sản: Giải Pháp Đột Phá...

Chuyển đổi số ngành địa ốc với Zalo Mini App bất động sản. Giải pháp giúp doanh nghiệp tiếp cận 80 triệu người dùng. Xem ngay.

Thông báo lịch nghỉ lễ Mùng 10 tháng 3, 30/4 và...

Công ty TNHH Thương mại Điện tử Công nghệ LP xin thông báo đến Quý Khách hàng, Đối tác và toàn thể Nhân viên lịch nghỉ lễ 10/3, 30/4 và 1/5 năm 2026

Zalo Mini App Ngành Trang Sức: Đón Sóng Tăng...

Khám phá cách Zalo Mini App ngành trang sức hỗ cập doanh nghiệp chăm sóc khách hàng và đột phá doanh thu. Xem ngay.

Zalo Mini App ngành du lịch: Giải pháp chuyển...

Khám phá hiệu quả khi triển khai Zalo Mini App ngành du lịch như tối ưu trải nghiệm khách hàng, quản lý đặt tour và tăng doanh thu hiệu quả. Xem ngay.

Zalo Mini App Ngành Giáo Dục: Nâng Cao Hiệu Quả...

Zalo Mini App ngành giáo dục giúp tối ưu trải nghiệm di động, truy cập nhanh, ổn định, hỗ trợ tra cứu điểm và quản lý học tập hiệu quả. Xem ngay.

Zalo Mini App ngành Spa: Giải pháp chăm sóc...

Khám phá cách quản lý khách hàng hiệu quả bằng Zalo Mini App ngành spa như: kết hợp đặt lịch, tích điểm và chăm sóc tự động. Xem ngay.