Advertisement
jiue123

regular expression - so mẫu PHP (****)

Sep 29th, 2014
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.98 KB | None | 0 0
  1. Biểu thức so mẫu (pattern) dùng để mô tả 1 cách tổng quát 1 đối tượng (chuỗi) trong PHP, ví dụ:
  2. preg_replace('/[^a-z0-9]+/i','',$str);
  3. --> hàm này l loại bỏ tất cả các ký tự không phải là chữ (a-z và A-Z) hoặc số (0-9) ra khỏi chuỗi $str
  4.  
  5. Biểu thức so mẫu dùng rất hiệu quả và nhanh chóng, tuy nhiên theo TG biết thì cũng không nhiều người biết sử dụng cái này(nhất là ở nơi không có trường lớp đào tạo cơ bản về PHP như VN chúng ta) còn số người biết,hiểu rõ thì không training lại nên đã ít nay càng ít người biết sử dụng biểu thức so mẫu. Trong bài này TG chỉ giới thiệu 1 số kiến thức cơ bản và 1 vài ví dụ để dễ hiểu, hy vọng là giúp ít cho anh em.
  6. Cấu trúc: như ví dụ trên thì /[^a-z0-9]+/i là 1 biểu thức so mẫu,
  7. - giới hạn trong cặp dấu /<so mẫu>/x hoặc #<so mẫu>#x
  8. - x có thể là 1 hoặc nhiều ký tự để mô tả dữ liệu được lấy và cũng có thể không có trong biểu thức so mẫu. Một số giá trị có thể có của  x:
  9. + i: không phân biệt chữ hoa, chữ thường
  10. + s: bao gồm cả các ký tự xuống dòng
  11. + Ngoài còn có 1 số giá trị khác như: S,U,... nhưng ít được sử dụng
  12.  
  13. Ta lấy ví dụ cho dễ hình dung:
  14. preg_replace('/[^a-z0-9]/','','phpBASIC$')
  15. -> php
  16. preg_replace('/[^a-z0-9]/i','','phpBASIC$')
  17. -> phpBASIC
  18. Ý nghĩa của các ký tự trong biểu thức so mẫu:
  19.  
  20. \ loại bỏ các ký tự đặc biệt của pattern
  21.   /(phpbasic)/ : chuỗi phpbasic
  22.   /\(phpbasic\)/ : chuỗi (phpbasic)
  23.  
  24.  
  25. ^ ký tự bắt đầu
  26. /^php(.*)/ : những chuỗi bắt đầu bằng chữ php
  27.  
  28.  
  29. $ ký tự kết thúc
  30. /(.*)basic$/ : những chuỗi kết thúc bằng chữ basic
  31.  
  32.  
  33. . bất kỳ ký tự nào trừ ký tự xuông dòng
  34. /(.*)/ : tất cả các ký tự nằm trên 1 dòng
  35.  
  36.  
  37. [] bắt đầu và kết thúc 1 lớp ký tự
  38. /[a-z]/ : tất cả các ký tự a-z
  39.   chú ý trong 1 lớp:
  40.   ^ phủ định:
  41.     /[^a-z]/ : những ký tự không phải là a-z
  42.   -  1 khoảng:
  43.    /[a-d]/ : bao gồm a,b,c,d
  44.  
  45.  
  46. | hoặc
  47. /a|b/ : ký tự a hoặc b
  48. () bắt đầu và kết thúc 1 so  mẫu con
  49. /^a(c|d)b/ : chuỗi có dạng acb hoặc acd
  50.  
  51.  
  52. ? có hoặc không
  53. /ab?c/ : chuỗi có dạng abc hoặc ac
  54.  
  55.  
  56. * : 0 hoặc nhiều hơn ký tự
  57. /a*/ : <null>, a, aa, aaa,.............
  58.  
  59.  
  60. + : có ít nhất 1
  61. /a+/ : a,aa,aaa,...............
  62.  
  63.  
  64. {} bắt đầu và kết thúc min/max ký tự
  65. /a{1,3}/ :  a,aa,aaa
  66.  
  67.  
  68. Các ký tự đặc biệt khác:
  69.  
  70. \n hoặc \r : ký tự xuông dòng
  71. \t : ký tự tab
  72. \d : bất kỳ ký tự số nào
  73. \D : bất kỳ ký tự nào mà không phải là số
  74. \s : bất kỳ ký tự khoảng trắng
  75. \S : bất kỳ ký không phải là khoảng trắng
  76. \w : bất kỳ từ nào
  77. \W : không phải là từ
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement