Regex là gì? Tất tần tật kiến thức về Regular Expression

Nội Dung ChínhRegex là gì?Ưu và nhược điểm của RegexƯu điểmNhược điểmCác cú pháp cơ bản Regular ExpressionỨng dụng RegexCách tạo ra 1 Regular Expressions trong JSCách viết Regex chi tiếtSửa đổi biểu thứcKý tự thườngKý tự đặc biệtBộ định lượngKhớp nhómNhững câu hỏi thường gặp về Regex?Lời kết Bạn đã bao giờ cảm thấy … Tiếp tục đọc Regex là gì? Tất tần tật kiến thức về Regular Expression


Banner hosting giá rẻ dành cho sinh viên

Bạn đã bao giờ cảm thấy mệt mỏi khi phải xử lý một chuỗi ký tự hoặc đoạn văn bản trong khi lập trình hay chưa? Bạn đang tốn thời gian viết các đoạn code dài ngoằng, lặp đi, lặp lại chỉ để kiểm tra ô input có hợp lệ hay không? Đừng lo vì Regular Expression sẽ là trợ thủ của bạn trong những trường hợp như này. Vậy Regular Expression hay Regex là gì? Cùng Vietnix tìm hiểu chi tiết ngay dưới bài viết dưới đây nhé!

Regex là gì?

Regex (hay RegExp hay RegExr) là cụm từ viết tắt của Regular Expression có nghĩa là biểu thức chính quy. Đây là một chuỗi các ký tự đặc biệt được định nghĩa để tạo nên các mẫu (pattern). Chúng được sử dụng để 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ó nghĩa là biểu thức chính quy
Regex có nghĩa là biểu thức chính quy

Regex sẽ được dùng trong hầu hết các ngôn ngữ lập trình hiện nay. Đâ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.

Banner Hosting Cao Cấp dành cho SEOer

Ưu và nhược điểm của Regex

Cùng Vietnix tìm hiểu Ưu và nhược điểm của biểu thức quy chuẩn ở dưới đây nhé.

Ưu điểm

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.

Nhược điểm

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à Vietnix đã tổng hợp dưới đây:

  • abcdef… : Chữ.
  • 123… : Số.
  • d: Bất cứ số nào.
  • D : Bất kì gì trừ số ra.
  • . : Bất cứ ký tự nào.
  • [abc] : Chỉ được là a, b hoặc c.
  • [^abc] : Không được có a, b và c.
  • [0-9] : Số từ o đến 0.
  • w: Bất cứ ký tự chữ nào.
  • W: Bất kì gì trừ chữ ra.
  • m: Lặp lại m lần.
  • m, n : Lặp lại tối thiểu m lần và tối đa n lần.
  • “^”: Đây là ký tự bắt đầu của chuỗi nhập. Ví dụ ^A thì A chính là ký tự đầu tiên của chuỗi.
  • “$”: Đây là ký tự kết thúc chuỗi nhập. Ví dụ như $B thì B ở đây chính là ký tự cuối cùng của chuỗi.
  • “.”: Được dùng để chỉ bất kỳ cứ ký tự nào, tuy nhiên ký tự xuống dòng bị ngoại trừ.
  • “*”: Nếu ký tự này xuất hiện, bạn có thể hiểu rằng, các ký tự trước đó có thể lặp 0 hoặc nhiều lần. Ví dụ, “ri*t” thì bạn có thể ngầm hiểu là riit hoặc riiit, hoặc có thể là rt.
  • “+”: Khác với ký tự “** , khi ký tự này xuất hiện bạn ngầm hiểu ký tự trước đó có thể lặp 1 hoặc nhiều lần. Ví dụ, “ri+t” có thể là rit, riit, riiiit,…
Banner Hosting Giá Rẻ dành cho cá nhân

Ứng dụng Regex

Regex thường được ứng dụng với 2 mục đích chính, đó là:

  • 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.
Ứng dụng Regex
Ứng dụng 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 ra, đó 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.
Tạo 1 Regular Expressions trong JS
Tạo 1 Regular Expressions trong JS

Trong đó: pattern là một chuỗi Regular Expression Flags thông số cấu hình cho chuỗi pattern 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òn m 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;patternmbachulski.comflagsigm.

Hosting Cao Cấp dành cho Web Developer

Cách viết Regex 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:

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

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à _

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

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
nx Khớp với bất kỳ chuỗi nào chứa 1 chuỗi X n
nx,y Khớp với bất kỳ những chuỗi có chứa chuỗi X với chuỗi Y n
nx, Đối sánh bất kỳ những chuỗi có chứa ít nhất là 1 chuỗi gồm X n

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à y
X(?!y) Chỉ khớp được với x nếu ngay sau x không là y

Những câu hỏi thường gặp về Regex?

Lời kết

Bên trên là những thông tin chi tiết về Regular Expressions hay Regex mà Vietnix đã tổng hợp và chia sẻ đến bạn. Hy vọng đã mang đến bạn cái nhìn rõ hơn về thuật ngữ này. Đừng quên theo dõi Vietnix để được cập nhật thêm nhiều thông tin và kiến thức bổ ích nhé! Cảm ơn bạn đã theo bài viết của chúng tôi.

Banner Hosting Giá Rẻ tại Vietnix



Thiết kế website

Rate this post

Bình luận