Khoảng trắng regex php

Biểu thức chính quy là một nhóm các ký tự được sử dụng để tìm ra một mẫu cụ thể bất kỳ trong một hoặc một vài câu hoặc đoạn văn bản. You can call them is biểu thức đại diện also been. Đứng về khía cạnh là một nhà phát triển thì regular expression có thể được coi là một công cụ rất là mạnh trong việc thiết lập chương trình, bạn chắc chắn đã từng phải sử dụng chúng trong chương trình của bạn, ví dụ như chức năng tìm kiếm hoặc có thể thay thế biểu thức, . Các ứng dụng khác nhau và lập trình ngôn ngữ sẽ có những triển khai cho biểu thức regex một cách khác nhau, nhưng về mặt ý tưởng, về mặt khái niệm thì chúng giống nhau. Trong bài viết này mình sẽ dùng ngôn ngữ PHP để giải thích và lấy ví dụ để các bạn hiểu thêm về Regex nhé

Nội dung chính Hiển thị

  • 1 Biểu thức chính quy là gì ?
  • 2. ví dụ cơ bản
  • 3. Siêu nhân vật
  • 3. 1 Khớp với một ký tự bất kỳ
  • 3. 2 Bộ ký tự
  • 3. 2. 1 bộ ký tự phủ định
  • 3. 3 lần lặp lại
  • 3. 4 niềng răng {}
  • 3. 5 Thu thập giá trị
  • 3. 6 luân phiên
  • 3. 7 ký tự đặc biệt
  • 3. 8 neo ^, $
  • 3. 8. 1 mỏ neo ^
  • 3. 8. 2 neo $
  • 4. Bộ tốc ký và ký tự
  • 5. Nhìn xung quanh
  • 5. 1 Cái nhìn tích cực [?=]
  • 5. 2 Nhìn trước tiêu cực [?. ]
  • 5. 3 Cái Nhìn Tích Cực
  • 5. 4 Cái nhìn tiêu cực
  • 6. 1 Trường hợp chuyên sâu [i]
  • 6. 2 Tìm kiếm toàn cầu [g]
  • 6. 3 Đa tuyến [m]
  • 7. Kết luận
  • 8. Tham khảo

1 Biểu thức chính quy là gì ?

Biểu thức chính quy là một chuỗi mô tả một bộ các chuỗi khác, theo các quy tắc cú pháp nhất định từ trái sang phải. Regular Expression là cách nói đầy đủ của biểu thức chính quy, nhưng bạn sẽ thấy các bài viết khác mà bạn tìm thấy trên google viết tắt là regex hoặc regexp. Biểu thức chính quy được sử dụng để thay thế một đoạn văn bản trong một chuỗi dài, xác thực biểu mẫu, lấy một chuỗi nhỏ trong một chuỗi lớn bên dưới vào mẫu mà chúng ta định nghĩa ra, và còn rất nhiều trường hợp khác mà bạn có thể

Hãy tưởng tượng rằng bạn đang viết một chương trình và bạn muốn đặt ra những quy tắc cho hệ thống khi người dùng lựa chọn tên người dùng. Bạn muốn cho phép người dùng chứa những chữ cái, những con số, bọc dưới [], hay là dấu gạch ngang [-]. Bạn cũng muốn giới hạn số lượng các ký tự trong tên người dùng. Bạn sử dụng biểu thức chính quy bên dưới để xác thực theo yêu cầu vừa đặt ra nhé

^[a-z-9_-]{3,15}$
  • ^. các ký tự bắt đầu một chuỗi
  • ________số 8. chỗ này có thể hiện là cho phép lấy chữ cái, các con số, dầu gạch dưới, dấu gạch ngang
  • {3,15}`. giới hạn chuỗi từ 3 đến 15 ký tự
  • $. end string character

Biểu thức chính quy ở trên có thể chấp nhận các chuỗi sau. biểu thức đại diện0, biểu thức đại diện1, và biểu thức đại diện2. Nó không khớp với chuỗi biểu thức đại diện3 bởi vì nó không có ký tự viết hoa và nó không nằm trong khoảng từ 3 đến 15 ký tự

2. ví dụ cơ bản

Biểu thức chính quy là một mẫu các ký tự mà bạn có thể sử dụng để thực hiện tìm kiếm trong một đoạn văn bản. Ví dụ, biểu thức chính quy biểu thức đại diện4 tức là nó sẽ tìm thấy trong một đoạn văn bản bắt đầu bằng biểu thức đại diện5, tiếp đến là biểu thức đại diện6 và tiếp đến là cuối cùng là biểu thức đại diện7

Hoàng => Nguyễn Minh Hoàng

Biểu thức chính quy biểu thức đại diện8 khớp với chuỗi biểu thức đại diện8. Biểu thức chính quy so khớp với chuỗi đầu vào bằng cách so sánh từng ký tự trong biểu thức chính quy với mỗi ký tự trong chuỗi đầu vào, lần giống như từng ký tự một. Biểu thức chính quy thường phân biệt những chữ thường, nếu như ta so khớp với chuỗi regular expression0 trong chuỗi bên trên thì chắc chắn rằng nó sẽ không khớp như vậy

Hoàng => Nguyễn Hoàng Minh Hoàng

3. Siêu nhân vật

Meta Character ở đây tôi muốn nói là thay vì các bạn cố định biểu thức chính quy cụ thể như regular expression1, các bạn còn có thể lấy bao nhiêu hơn nữa bằng cách sử dụng khối biểu thức chính quy. Ở dưới đây là bảng giải thích khối biểu thức chính quy

Ký tự meta Mô tả. Khớp với tất cả các ký tự ngoại trừ các ký tự đặc biệt xuống dòng \n[]Khớp với bất cứ ký tự nào được chứa giữa các cặp ngoặc kép này[^ ]Khớp với bất kỳ ký tự nào không được chứa giữa các cặp ngoặc . Hoặc\Đứng trước ký tự như regular expression2 để không bị nhầm lẫn giữa cú pháp và ký tự cần khớp^Bắt đầu đầu vào$Match đến cuối đầu vào

3. 1 Khớp với một ký tự bất kỳ

Trong biểu thức chính quy khi chúng ta sử dụng các ký tự regular expression3 là ví dụ đơn giản nhất cho việc chúng ta khớp với nhiều ký tự trong đầu vào chuỗi. regular expression3 trong biểu thức chính quy có nghĩa khớp với các ký tự đơn. Nó sẽ không khớp với các ký tự xuống dòng regular expression5. Ví dụ, bạn có biểu thức chính quy là regular expression6 tức là nó sẽ khớp với chuỗi đầu vào bất kỳ ký tự nào trong chuỗi bắt đầu bằng bất kỳ ký tự nào nhưng sau đó phải là biểu thức đại diện6

g => vỡ nguyến nguyện

3. 2 Bộ ký tự

Bộ ký tự được gọi là nhóm các ký tự. Các cặp khung được sử dụng để chỉ ra các ký tự nào được so khớp. Thứ tự so khớp của các ký tự trong cặp dấu ngoặc kép này mà bạn không cần quan tâm. Ví dụ, ta có cơn thức chính quy như sau

[Nn]guyen => Nguyễn Nguyễn Minh Hoàng

và [. ] => Day la dau cham het

3. 2. 1 bộ ký tự phủ định

Như ta đã biết các ký tự ^ là ký tự đại diện để bắt đầu một chuỗi nhưng khi sử dụng trong cặp dấu ngoặc vuông, cụ thể hơn là sau khi mở khung, nó sẽ có nghĩa là không khớp với các ký tự sau ^ trong

[^c]\oi => Dong doi la phai biet nguon coi cua nhau

3. 3 lần lặp lại

Biểu thức chính quy0, Biểu thức chính quy1 hoặc Biểu thức chính quy2 được sử dụng để chỉ sự xuất hiện bao nhiêu lần của 1 hoặc 1 mẫu nhóm có thể xuất hiện

3. 3. 1 *

Biểu thức chính quy1 đại diện cho không hoặc nhiều ký tự. Ví dụ biểu thức chính quy Biểu thức chính quy4 chúng ta có thể hiểu là sau Biểu thức chính quy5 không thể có hoặc nhiều ký tự đứng sau nó. Nhưng nếu nó xuất hiện sau một ký tự lớp được đặt trong dấu ngoặc, thì nó sẽ khớp với tất cả các trường hợp được đặt trong dấu ngoặc đó. Ví dụ, biểu thức chính quy Biểu thức chính quy6 có nghĩa là so khớp với bất kỳ chữ cái thường nào

[a-z]* => Nguyễn minh hoàng sinh nam bảo nhiều

Biểu thức chính quy1 may be used with meta character, to could so khớp bất cứ chuỗi ký tự nào của Biểu thức chính quy8. Biểu thức chính quy1 may be used with khoảng trắng Regular Expression0 to match a string of chứa khoảng trắng. Ví dụ, ta có biểu thức chính quy như sau Regular Expression1 có nghĩa là. không hoặc nhiều dấu cách, theo sau đó là ký tự Regular Expression2, tiếp theo sau đó là ký tự Regular Expression3, cuối cùng là không hoặc nhiều dấu cách

\s*em\s* => Khi đổi mới em còn làm mong, một kem trước công

3. 3. 2 +

Biểu thức chính quy0 đại diện cho một hoặc nhiều ký tự. Ví dụ, ta có biểu thức chính quy Regular Expression5 nghĩa là bắt đầu so khớp bắt đầu là Regular Expression6 tiếp theo là một ký tự bất kỳ nhưng bởi vì phía sau nó có ký tự Biểu thức chính quy0 nên bắt buộc sau Regular Expression6 phải có nhiều ký tự

u. +n => Chung ta uon luon tuon cuon

3. 3. 3?

Biểu thức chính quy2 đại diện cho một hoặc không có ký tự nào. Ví dụ, biểu thức chính quy regex1 có nghĩa là. Có hoặc không có ký tự N, tiếp theo là ký tự regex2, tiếp theo diễn ra cuối cùng là ký tự Regular Expression6

[N]?hieu => Nhieu nguoi cho rang hieu nhau chua phai la du

3. 4 niềng răng {}

Trong biểu thức chính quy regex4 được gọi là độ dài thông thường được sử dụng để chỉ ra số lượng, hoặc số lần xuất hiện của ký tự hoặc nhóm ký tự có thể lặp lại. Ví dụ, ta có biểu thức chính quy như sau regex5 có nghĩa là. các ký tự số tối thiểu là 2 và không được nhiều hơn 3, các ký tự số nằm trong khoảng từ 0 đến 9

regex5 => nam nay la nam 2020

Chúng ta có thể lấy nhiều hơn 3 ký tự theo cách như sau

regex7 => nam nay la nam 2020

Hoặc lấy đúng 2 ký tự số

regex8 => nam nay la nam 2020

3. 5 Thu thập giá trị

Giá trị chụp là một nhóm các mẫu nhỏ hơn được đặt trong dấu regex9. Ví dụ regexp0 có nghĩa là. bắt đầu bằng regexp1 hoặc regexp2, tiếp theo là ký tự Regular Expression6, và cứ đến cuối là biểu thức đại diện7

[ng. th]uyen => nguyen nhan dan den thuyền bi lat la song to

[[a-z]+][[0-9]+] => hoang0607

3. 6 luân phiên

Trong biểu thức chính quy, thì regexp5 được sử dụng để định nghĩa hoặc có cái này hoặc có cái kia, hoặc có cả hai. It same as allow regexp6 in the setting. Ví dụ regexp7 có nghĩa là. tiền bắt đầu bằng regexp8 hoặc regexp9, tiếp đến là ^0, tiếp theo đó là biểu thức đại diện6 hoặc ^2, tiếp theo đó là cuối cùng là Biểu thức chính quy5

[C. c] treo. ta => Chung ta la mot gia dinh, chung khong phai gia dinh

3. 7 ký tự đặc biệt

Khi chúng ta muốn sử dụng các ký tự đặc biệt trong đoạn regex regular expression2 thì chúng ta có thể kèm theo các ký tự từ ^5 trước các ký tự đặc biệt đó để đỡ bị nhầm lẫn với cú pháp regex nhé.

[g. c. m]a\. => ga an ca, cho an ga, cho can ma

3. 8 neo ^, $

Trong chương trình chúng ta muốn kiểm tra xem hai biến có chính xác bằng nhau hay không thì chúng ta chỉ cần so sánh ^6. Còn lại, trong biểu thức chính quy, chúng ta sẽ sử dụng bắt đầu ^ và các ký tự kết thúc $ được đặt ở đầu hoặc cuối biểu thức chính, như vậy khi so khớp sẽ so sánh từ đầu đến cuối, tức là chúng ta sẽ khớp như vậy

3. 8. 1 mỏ neo ^

Mình sẽ lấy 2 ví dụ để giải thích cho các bạn nhé

uy => nguyễn uy

trong trường hợp này thì các bạn thấy đấy nó sẽ khớp với tất cả những từ có ^9 không phân biệt là ^9 nó nằm ở đâu. Nhưng khi bạn thêm [a-z-9_-]1 thì nó sẽ khác

^uyen => nguyễn uy

  • Ký tự thứ 1 phải là chứ không phải Regular Expression6 và bắt đầu chuỗi
  • Ký tự thứ 2 phải là chữ [a-z-9_-]3
  • ...
  • Cuối ký tự phải là chữ biểu thức đại diện7

3. 8. 2 neo $

Mình cũng sẽ lấy 2 ví dụ để giải thích cho các bạn

ủy khuất. => nguyễn uyên

Nhưng khi bạn thêm $ vào cuối regex thì nó sẽ như sau

ủy khuất. $ => nguyễn uy uy

Ý nghĩa là bắt buộc sau ký tự biểu thức đại diện7 phải là dấu hiệu regular expression3 thì mới hợp lệ

4. Bộ tốc ký và ký tự

Biểu thức chính quy mang đến cú pháp rút gọn mà thuận tiện hơn trong công việc chúng ta viết các biểu thức chính quy

Tốc kýMô tả. Bất kỳ ký tự nào ngoại trừ ký tự xuống dòng \n\w[a-zA-Z0-9_]\W[\w]\d[0-9]\D[^\d]\s[^\s

5. Nhìn xung quanh

Lookaround được chia làm 2 loại đó là lookahead và lookbehind. Nó dùng để kiểm tra điều kiện ở phía trước hoặc phía sau mẫu đứng trước hoặc sau nó. Lookahead được sử dụng khi chúng ta có mẫu điều kiện này đi trước mẫu khác. Ví dụ, bạn muốn lấy tất cả các số trước đó là ký tự $

[? $1.67 $1.02

5. 1 Cái nhìn tích cực [?=]

Ví dụ bạn muốn lấy ra tất cả những người dùng đứng sau là [a-z-9_-]9 thì có thể viết biểu thức chính quy như sau

'/[^\is]+[[email được bảo vệ]]/' => nguyen minh hoang@gmail. com

ý ở đây sẽ chỉ lấy những chuỗi đầu vào nào mà có đuôi [a-z-9_-]9 thôi

5. 2 Nhìn trước tiêu cực [?. ]

It is reverse of $1. Bây giờ mình thay thế $1 bằng $3 thì sẽ có kết quả ngược lại. '/[^\s]+[[email được bảo vệ]]/' => nguyenmhoang@framgia. com

5. 3 Cái Nhìn Tích Cực

Mình sẽ lấy ví dụ để các bạn hiểu rõ hơn nhé. Bạn muốn regex những email có phần đầu là $4, các bạn sẽ viết biểu thức chính quy như sau

[? nguyenminhhoang**@gmail.com** nguyenminhhoang**@yahoo.com** [email protected]framgia.com

5. 4 Cái nhìn tiêu cực

Ngược lại với Tích cực ở bên trên thì chính là Tiêu cực. Các bạn muốn lấy phần đuôi của email không phải của $4 thì các bạn sẽ viết đoạn regex như sau

[? Nguyễn minh nguyên

/Nguyen/gi => Nguyễn minh nguyễn

Cái cờ này các bạn lưu ý để sử dụng trong các engine trực tuyến có sẵn nhé, tùy các bạn chọn cờ nào mà kết quả khớp với regex nó sẽ khác nhau

6. 2 Tìm kiếm toàn cầu [g]

Công cụ sửa đổi biểu thức đại diện6 được sử dụng để tìm kiếm trong những cái gì ghê tởm trong chuỗi đầu vào. Ví dụ, biểu thức chính quy biểu thức đại diện09 có nghĩa là. Bất kỳ ký tự nào ngoại trừ ký tự xuống dòng mới, tiếp theo đó là ký tự Biểu thức chính quy5, sau đó nữa là biểu thức đại diện7. Bởi vì cuối cùng có cờ biểu thức đại diện6 nên nó sẽ tìm tất cả các khả năng có thể khớp với đầu vào chuỗi, không chỉ tìm và trả về kết quả đầu tiên

/. [a]n/ => Con ngan danh dan ta lung

/. [a]n/g => Con ngan danh dan ta lung

6. 3 Đa tuyến [m]

Công cụ sửa đổi Regular Expression3 được sử dụng khi chúng tôi cần khớp đoạn đầu vào có nhiều dòng. Như mình đã nói ở trên là ký tự neo biểu thức đại diện14 được sử dụng để kiểm tra xem mẫu có muốn khớp ở đầu hay ở cuối của chuỗi đầu vào không. Nhưng nếu chúng ta muốn các ký tự neo làm việc trên một dòng tức thời là đầu vào không có ký tự regular expression5. Nếu các bạn muốn nó khớp trên nhiều dòng thì các bạn chọn cờ Regular Expression3 ở cuối động cơ nhé. Ví dụ, bạn có biểu thức chính quy như sau

biểu thức đại diện17 => Nguyên
minh
nguyen.

biểu thức đại diện18 => Nguyên
minh
nguyen.

7. Kết luận

Vì thế qua vài điều mình chia sẻ ở trên mong rằng một phân nào các bạn cũng hiểu hơn về biểu thức chính quy. Bài chia sẻ tiếp theo mình sẽ đi tìm hiểu một số hàm sử dụng với biểu thức chính quy và một số ví dụ nhé. Cảm ơn các bạn đã đọc bài chia sẻ của mình

Chủ Đề