PHP REGEX Bài 2: Quy tắc Regular Expression phần 1

0
17

Bài học trước chúng ta đã tìm hiểu Regular Expression là gì, hôm nay trong series học lập trình web PHP chúng ta sẽ cùng tìm hiểu về các quy tắc regular expression nhé.

1.Bảng các quy tắc Regular Expression

STTKí hiệuÝ nghĩa
1^Tìm kiếm giá trị từ đầu chuỗi nguồn, nếu nó đứng trước một tập hợp hoặc ký tự thì có nghĩa là phụ định của tập hợp hay kí tự đó
2$Tìm kiếm giá trị từ cuối chuỗi nguồn
3\Tìm kiếm kí tự đặc biệt trong chuỗi nguồn
4.Đại diện một ký tự bất kỳ
5[]Tập hợp các ký tự
6Lấy các ký tự trong một khoảng nào đó (thường dùng với kí hiệu [])
7(A|B|C)Lựa chọn giá trị bất kỳ A hoặc B hoặc C
8*0 hoặc nhiều lần xuất hiện
9+1 hoặc nhiều lần xuất hiện
10?0 hoặc 1 lần xuất hiện
 11{x,y} Số lần xuất hiện của kí tự từ n đến m lần
 12*?0 lần xuất hiện
13+?1 Lần xuất hiện
 14??0 Lần xuất hiện
 15\wTương đương [A-z0-9_]
 16 \W Tương đương [^A-z0-9_]
17\sTập hợp ký tự khoảng trắng
 18\SPhủ định của \s
 19 \d Tập hợp những kí tự từ 0 đến 9
 20 \DPhụ định của \d
 21\ATìm kiếm đầu chuỗi nguồn
 22 \ZTìm kiếm cuối chuỗi nguồn
 23 \bTìm ở vị trí biên của một từ
 24\BPhụ định của \b

2.Ký tự ban đầu và kết thúc

Để so sánh kí tự ban đầu của một chuỗi ta dùng kí tự ^ còn muốn so sánh kí tự kết thúc của chuỗi ta dùng ký tự $

Ví dụ: Tìm kí tự ban đầu

Kết quả trả về là

Ví dụ: Tìm kí tự kết thúc

Kết quả

3. Tìm kí tự đặc biệt

Trong trường hợp chúng ta muốn so sánh một kí tự đặc biệt, kí tự đấy lại trùng với kí tự trong Regex thì chúng ta chỉ cần thêm \ vào trước ký tự cần tìm.

Ví dụ: Tìm kí tự $ nằm ở vị trí bắt đầu của chuỗi

Kết quả:

4.Tìm ký tự bất kỳ

Regex hỗ trợ chúng ta tìm các kí tự bất kỳ bằng cách sử dụng . trong biểu thức Regex

Ví dụ: Tìm 1 ký tự bất kỳ trong chuỗi

Kết quả trả về

Khi chúng ta thay $pattern = '\...\' thì chúng ta sẽ nhận được kết quả

Bạn muốn lấy so sánh bao nhiêu kí tự thì chỉ cần khai báo bấy nhiêu .

5.Tìm tập hợp các kí tự nào đó

Để tìm tập hợp các ký tự nào đó trong một chuỗi thì chúng ta sử dụng []

Ví dụ: Tìm tập hợp kí tự Hol trong chuỗi Hoc lap trinh - PHP

Ở đây tôi sẽ dùng hàm preg_match_all() để nhận hết tất các các dữ liệu mà nó tìm được.

Kết quả trả về

5.1 Tìm tập hợp ký tự thường

Trong bảng chữ cái thì tập hợp các kí tự thường là từ a tới z

Bây giờ để kiểm tra kí tự thường bất kì trong một chuỗi thì chúng ta dùng [a-z] , - cho phép chúng ta lấy kí tự trong một khoảng nào đó.

Ví dụ

Kết quả trả về

5.2 Tìm tập hợp kí tự in hoa

Tương tự tập hợp kí tự in thường thì chúng ta sẽ có tập hợp kí tự in hoa A tới Z

Ví dụ

Kết quả trả về

5.3 Tìm ký tự là số

Ví dụ:

Kết quả trả về

5.4 Tìm tập hợp ký tự in hoa, in thường

Ví dụ

Kết quả trả về

5.5 Tìm tập hợp in hoa, in thường và số

Ví dụ

Kết quả trả về

5.6 Phủ định của một tập hợp

Ở phần trên chúng ta đã tìm hiểu về kí tự ^ có chức năng tìm kí tự đầu tiên trong chuỗi, nhưng khi đưa kí tự này vào trong tập hợp thì nó lại có chức năng khác là phụ định các kí tự bên trong tập hợp đó.

Danh sách các ký tự Regex đặc biệt như sau:

  • \d – Chữ số bất kỳ ~ [0-9]
  • \D – Ký tự bất kỳ không phải là chữ số (ngược với \d) ~ [^0-9]
  • \w – Ký tự từ a-z, A-Z, hoặc 0-9 ~ [a-zA-Z0-9]
  • \W – Ngược lại với \w (nghĩa là các ký tự không thuộc các khoảng: a-z, A-Z, hoặc 0-9) ~[^a-zA-Z0-9]
  • \s – Khoảng trắng (space)
  • \S – Ký tự bất kỳ không phải là khoảng trắng.

Ví dụ: Tôi muốn loại bỏ các kí tự aHtP0-9 ở trong chuỗi Hoc lap trinh - PHP 01234

Kết quả trả về

Bài học kết thúc tại đây, các bạn theo dõi các bài học tiếp theo tại đây nhé. Chúc các bạn học tập tốt.

[Total: 0    Average: 0/5]

LEAVE A REPLY

Please enter your comment!
Please enter your name here