Hướng dẫn delimiter in php - dấu phân cách trong php

Sử dụng regular expression là một kiến thức cần có của các developer. Nó giúp giải các bài toán tìm kiếm, tách lọc dữ liệu theo mẫu chỉ định.

Nội dung chính ShowShow

  • 2. Pattern  [mẫu]
  • 3. Các hàm php xử lý regular expression
  • a. Hàm preg_match
  • b. Hàm preg_replace
  • c. Hàm preg_split
  • 4. Dấu chấm trong pattern
  • 5. Khớp pattern ở đầu và cuối chuỗi
  • 6. Class trong pattern [lớp ký tự trong pattern]
  • 7. Các cách viết tắt
  • 8. Lặp lại class
  • 9. Back references
  • 10. Một số ví dụ
  • a. Ví dụ Tìm chuỗi con
  • b. Ví dụ Tách chuỗi con
  • c. Ví dụ Tìm chuỗi unicode
  • d. Ví dụ Tìm chuỗi con unicode       
  • e. Ví dụ Tìm và thay thế     
  • f. Ví dụ Tìm và thay thế   
  • g. Ví dụ Tìm và thay thế   
  • h. Ví dụ Tìm số    

Nội dung chính

  • 2. Pattern  [mẫu]
  • 3. Các hàm php xử lý regular expression
  • a. Hàm preg_match
  • b. Hàm preg_replace
  • c. Hàm preg_split
  • 4. Dấu chấm trong pattern
  • 5. Khớp pattern ở đầu và cuối chuỗi
  • 6. Class trong pattern [lớp ký tự trong pattern]
  • 7. Các cách viết tắt
  • 8. Lặp lại class
  • 9. Back references
  • 10. Một số ví dụ
  • a. Ví dụ Tìm chuỗi con
  • b. Ví dụ Tách chuỗi con
  • c. Ví dụ Tìm chuỗi unicode
  • d. Ví dụ Tìm chuỗi con unicode       
  • e. Ví dụ Tìm và thay thế     
  • f. Ví dụ Tìm và thay thế   
  • g. Ví dụ Tìm và thay thế   
  • h. Ví dụ Tìm số    

Nội dung chính

  • 2. Pattern  [mẫu]
  • 3. Các hàm php xử lý regular expression
  • a. Hàm preg_match
  • b. Hàm preg_replace
  • c. Hàm preg_split
  • 4. Dấu chấm trong pattern
  • 5. Khớp pattern ở đầu và cuối chuỗi
  • 6. Class trong pattern [lớp ký tự trong pattern]
  • 7. Các cách viết tắt
  • 8. Lặp lại class
  • 9. Back references
  • 10. Một số ví dụ
  • a. Ví dụ Tìm chuỗi con
  • b. Ví dụ Tách chuỗi con
  • c. Ví dụ Tìm chuỗi unicode
  • d. Ví dụ Tìm chuỗi con unicode       
  • e. Ví dụ Tìm và thay thế     
  • f. Ví dụ Tìm và thay thế   
  • g. Ví dụ Tìm và thay thế   
  • h. Ví dụ Tìm số    

Nội dung chính

2. Pattern  [mẫu]

d. Ví dụ Tìm chuỗi con unicode       delimiter. Các delimiters thường dùng trong php là  /, # , ~ } .  Sau đây là một vài mẫu :

e. Ví dụ Tìm và thay thế     

f. Ví dụ Tìm và thay thế   //

/\/\//
#//#

3. Các hàm php xử lý regular expression

a. Hàm preg_match

h. Ví dụ Tìm số    

Một regular expression [regex] là 1 mẫu [pattern] dùng để so khớp trong văn bản. Kiến thức về regular rất hữu ích trong các bài toán tìm, so khớp, bóc tách dữ liệu theo 1 mẫu nào đó.

Tìm thấy chữ thân
Không tìm thấy chữ yêu
Tận cùng là ng

b. Hàm preg_replace

Mỗi 1 mẫu [pattern] phải đặt trong dấu hiệu gọi là delimiter. Các delimiters thường dùng trong php là  /, # , ~ } .  Sau đây là một vài mẫu :

Một regular expression [regex] là 1 mẫu [pattern] dùng để so khớp trong văn bản. Kiến thức về regular rất hữu ích trong các bài toán tìm, so khớp, bóc tách dữ liệu theo 1 mẫu nào đó.

    Vân Tiên nghe nói động l...,
    Đáp rằng: Ta đã trừ d... lâu la.
    Khoan khoan ngồi đó chớ ra,
    Nàng là phận gái, ta là phận tr....
    Tiểu thư con gái nhà ...,
    Đi đâu nên nỗi mang t... bất kỳ

c. Hàm preg_split

Mỗi 1 mẫu [pattern] phải đặt trong dấu hiệu gọi là delimiter. Các delimiters thường dùng trong php là  /, # , ~ } .  Sau đây là một vài mẫu :

Một regular expression [regex] là 1 mẫu [pattern] dùng để so khớp trong văn bản. Kiến thức về regular rất hữu ích trong các bài toán tìm, so khớp, bóc tách dữ liệu theo 1 mẫu nào đó.

Array [
[0] => Mồi phú quí dữ làng xa mã
[1] => Bả vinh hoa lừa gã công khanh
[2] => Giấc Nam Kha khéo bất bình
[3] => Bừng con mắt dậy thấy mình tay không ]

Mỗi 1 mẫu [pattern] phải đặt trong dấu hiệu gọi là delimiter. Các delimiters thường dùng trong php là  /, # , ~ } .  Sau đây là một vài mẫu :

4. Dấu chấm trong pattern

/abc/
#[0-9]{3}$#
+php+
%[a-zA-Z0-9_-]%

5. Khớp pattern ở đầu và cuối chuỗi

Nếu cần so khớp ký tự delimiter thì trong pattern thêm trước nó dấu \  hoặc dùng delimiter khác, ví dụ sau là 2 cách diễn tả pattern //^ khớp với vị trí ký tự đầu tiên trong chuỗi hoặc đầu dòng. Chẳng hạn với chuỗi abc, thì pattern ^a là khớp còn pattern ^b thì không khớp .

Hàm preg_match[$pattern, $string]  Cho biết pattern có khớp [được tìm thấy] trong chuỗi hay không. Ví dụ:abc thì pattern  c$ sẽ khớp , còn pattern a$ thì không khớp.

6. Class trong pattern [lớp ký tự trong pattern]

7. Các cách viết tắt[ps] ]  Class được dùng để so khớp với 1 ký tự trong chuỗi. Có nghĩa là khớp nếu có 1 ký tự  trong chuỗi khớp với 1 trong những ký tự của class.  Ví dụ để so khớp ký tự u hoặc o, thì diễn tả bằng class [ai].  Như vậy /th[ai]nh/ sẽ khớp với  thanh hoặc thinh

8. Lặp lại class

9. Back references

  • 10. Một số ví dụ
  • a. Ví dụ Tìm chuỗi con
  • ] sẽ mang nghĩa thường nếu đặt nó ở ngay sau [  hoặc  [^ . Ví dụ  []x] sẽ khớp với ] hoặc x.  [^]x] sẽ khớp với bất kỳ ký tự nào không phải là ] hoặc x.
  • –  sẽ mang nghĩa thường nếu đặt nó ở ngay sau [ hoặc [^  hoặc ngay trước ]. Ví dụ  [-x] và [x-] đều so khớp với – hoặc x.

7. Các cách viết tắt

  • \d là viết tắt của [0-9]
  • \w  để để diễn tả 1 từ
  • \s để để diễn tả 1 “khoảng trắng” tạo bởi space hoặc tab

Ví dụ \s\d diễn tả một ký tự trắng theo sau là một digit. [\s\d] khớp với ký tự trắng hoặc một digit.

8. Lặp lại class

Dấu ? * +  được dùng khi muốn lặp lại class. Dấu + để diễn tả từ 1 trở lên, * là từ 0 trỡ lên,? Là 1 ký tự. Ví dụ:

Kết quả:

Array [ [0] => 0918667788 ]
Array [ [0] => Array [ [0] => 0918667788 [1] => 012375345 [2] => 86927302 ] ]

9. Back references

Back reference được đặt bên ngoài class, back reference gồm dấu \ và 1 digit >0 , 1 back reference tương ứng với 1 capturing subpattern trước đó. 

10. Một số ví dụ

a. Ví dụ Tìm chuỗi con

/\/\//
#//#
0

b. Ví dụ Tách chuỗi con

/\/\//
#//#
1

c. Ví dụ Tìm chuỗi unicode

/\/\//
#//#
2

d. Ví dụ Tìm chuỗi con unicode       

/\/\//
#//#
3

e. Ví dụ Tìm và thay thế     

/\/\//
#//#
4

f. Ví dụ Tìm và thay thế   

/\/\//
#//#
5

g. Ví dụ Tìm và thay thế   

/\/\//
#//#
6

h. Ví dụ Tìm số    

/\/\//
#//#
7

i. Ví dụ Tìm số và lấy ra dùng      

/\/\//
#//#
8

j. Ví dụ Email valid     

/\/\//
#//#
9

k. Ví dụ IP valid      

0

l. Ví dụ Phone valid     

1

Bài Tập

Tạo file bai1.php và thực hiện

  • Dùng hàm file_get_contents để request trang //vnexpress.net , kết quả lưu vào biến $str
  • Hiện code vừa nhận được [echo “”,$str,””;]
  • Chạy thử trang web để xem kết quả.
  • Dùng hàm preg_match_all để lấy tất cả các chuỗi khớp với pattern sau đây rồi lưu vào biến array arr rồi hiện array ra trang web.
2
  • Giải thích parttern

Tạo file bai2.php và thực hiện

Tương tự bài 1 nhưng lấy từ //nld.com.vn, các chuỗi trong giá trị của src=”” [tức là địa chỉ các hình]. Yêu cầu: chỉ lấy các hình có đuôi jpg  hoặc png

Tạo file bai3.php và thực hiện

  • Tiếp nhận giá trị của biến pass trong địa chỉ trang
  • Kiếm tra xem giá trị trong biến pass có phải là 1 mật khẩu mạnh hay không

Tạo file bai4.php và thực hiện

  • Tiếp nhận giá trị của biến phone trong địa chỉ trang
  • Kiếm tra giá trị biến phone có phải là 1 số điện thoại hợp lệ theo công thức 0xxx-xx-xx-xx  hay không

Bài Viết Liên Quan

Chủ Đề