Cách dùng hàm preg_match trong lập trình php

Thảo luận trong 'Ngôn ngữ lập trình web PHP' bắt đầu bởi admin, 26/9/14.

  1. admin
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,897
    Đã được thích:
    1,198
    Điểm thành tích:
    113
    Giới tính:
    Nam
    • Khi bạn cần kiểm tra 1 chuỗi $str xem có định dạng đúng với các yêu cầu bạn cần hay không VD: chuỗi có gồm 3 ký tự, chuỗi có các ký tự giống nhau liền kề, chuỗi có tồn tại dấu -,+,....
    • Khi bạn cần kiểm tra 1 chuỗi $str trong các thẻ a, link, h, p ,.. xem có định dạng đầu tiên là ký tự < và kết thúc là ký tự > nếu có bạn sẽ thay thế hết đoạn <... ký tự cần xác định > thành ký tự xyz bạn cần. VD: $str="<h1>tôi yêu lập trình web php</h1>, <p>cách dùng hàm preg_match trong lập trình php</p>"; bạn muốn biến đổi thành : "xyztôi yêu lập trình web phpxyz, xyzcách dùng hàm preg_match trong lập trình phpxyz".
    • Ở 2 tình huống bạn thấy các chuỗi string không cố định, chúng biến đổi liên tục trong từng đoạn dữ liệu. Nếu bạn xử lý code bằng các hàm for, tìm và thay thế thì code sẽ chạy rất lâu và rất khó xử lý chúng.
    • Vì lý do đó php cho chúng ta hàm preg_... để xử lý các tình huống khó khăn như trên VD: preg_match,preg_replace,....
    Nay mình hướng dẫn các bạn cách sử dụng hàm preg_match một cách chi tiết và tốt nhất.

    cach-su-dung-hampreg_match.jpg
    1.Dạng dùng cặp dấu /../ để bắt đầu và kết thúc chuổi định dạng.

    PHP:
    <?php
    if (preg_match("/PHP/""cách dùng hàm preg_match trong lập trình php.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : Hàm trên dùng để kiểm tra xem có tồn tại chuổi "PHP" không? Kết quả là không. Vì trong chuổi mẹ chỉ có chữ php (viết thường).

    2. Để chỉ định không phân biết chữ hoa hay chữ thường ta dùng kí hiệu i.

    PHP:
    <?php
    if (preg_match("/PHP/i""cách dùng hàm preg_match trong lập trình php.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : Hàm trên dùng để kiểm tra xem có tồn tại chuổi "PHP" trong chuỗi "cách dùng hàm preg_match trong lập trình php." không và không phân biệt chữ hoa, chữ thường ? Kết quả là có. Vì trong chuổi mẹ có chữ php (viết thường).

    3.Dấu ^ để qui định chuổi định dạng nằm ở vị trí đầu tiên của chuổi mẹ.

    PHP:
    <?php
    if (preg_match("/^PHP/i""cách dùng hàm preg_match trong lập trình php.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : Hàm kiểm tra xem có chuỗi "PHP" nằm ở vị trí đầu trong chuỗi "cách dùng hàm preg_match trong lập trình php." hay không, kết quả là không tìm thấy. Vì chử php không nằm ở vị trí đầu tiên.

    4.Dầu $ qui định chuổi định dạng nằm ở vị trí cuối cùng của chuổi mẹ.

    PHP:
    <?php
    if (preg_match("/PHP$/i""cách dùng hàm preg_match trong lập trình php")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : Hàm kiểm tra xem có chuỗi "PHP" nằm ở vị trí cuối cùng trong chuỗi "cách dùng hàm preg_match trong lập trình php" hay không, kết quả là có tìm thấy. Vì chử php có nằm ở vị trí cuối cùng.

    5.Dấu \s để qui định khỏang trắng

    PHP:
    <?php
    if (preg_match("/PHP(\s)tốt/i""cách dùng hàm preg_match trong lập trình php tốt")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích: Hàm kiểm tra xem có chuỗi "PHP tốt" mà ở giữa chuỗi phải có khoảng trắng trong chuỗi "cách dùng hàm preg_match trong lập trình php tốt" hay không, kết quả là là có.

    6.Dấu ? để qui định: không tồn tại, hoặc nếu tồn tại thì chỉ có 1 thôi

    PHP:
    <?php
    if (preg_match("/PHP(\s)?tốt/i""cách dùng hàm preg_match trong lập trình php tốt")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích: Hàm kiểm tra xem có chuỗi "PHP tốt" hoặc "PHPtốt" có tồn tại ít nhất 1 lần trong chuỗi "cách dùng hàm preg_match trong lập trình php tốt" hay không, kết quả là là có tìm thấy.

    7.Dấu * để qui định: không tồn tại, hoặc nếu có thì có thể có nhiều

    PHP:
    <?php
    if (preg_match("/PHP(\s)*tốt/i""cách dùng hàm preg_match trong lập trình php         tốt")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích: Hàm kiểm tra xem có chuỗi "PHP tốt" ở giữa có nhiều khoảng trắng hoặc "PHPtốt" có tồn tại trong chuỗi "cách dùng hàm preg_match trong lập trình php tốt" hay không, kết quả là là có tìm thấy.

    8.Dấu + để qui định: phải tồn tại từ 1 trở lên.

    PHP:
    <?php
    if (preg_match("/PHP(\s)+tốt/i""Tự học lập trình php tốt nhất và cách dùng hàm preg_match trong lập trình phptốt")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích: Hàm kiểm tra xem có chuỗi "PHP tốt" ở giữa có một khoảng trắng trở lên có tồn tại trong chuỗi "Tự học lập trình php tốt nhất và cách dùng hàm preg_match trong lập trình phptốt" hay không, kết quả là là không tìm thấy vì chỉ chõ chuỗi 1 khoảng trắng và không có khoảng trắng (PHP tốt và phptốt).

    9.Cặp dấu [] để liệt kê

    PHP:
    <?php
    if (preg_match("/[_,]php/i""_PHP cách dùng hàm preg_match trong lập trình php.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : hàm kiểm tra xem chuỗi "_php" hoặc ",php" có tồn tại trong chuỗi "_PHP cách dùng hàm preg_match trong lập trình php." hay không. Kết quả là có vì ta tìm thấy chuỗi con là "_PHP"

    10.A-Z, a-z , A-z qui định một kí tự viết hoa, viết thường, tất cả. Phải đi kèm với dấu []

    PHP:
    <?php
    if (preg_match("/[a-z]php/i""xyzPHP cách dùng hàm preg_match trong lập trình php.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : hàm kiểm tra xem trước chuỗi "php" có tồn tại các ký tự từ "a->z" trong chuỗi "xyzPHP cách dùng hàm preg_match trong lập trình php." hay không. Kết quả là có vì ta tìm thấy chuỗi con là "xyzPHP"

    11. 0-9 qui định một kí số

    PHP:
    <?php
    if (preg_match("/[0-9]php/i""cách dùng hàm preg_match trong lập trình 99php.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : hàm kiểm tra xem trước chuỗi "php" có tồn tại các ký tự số từ "0->9" trong chuỗi "cách dùng hàm preg_match trong lập trình 99php." hay không. Kết quả là có vì ta tìm thấy chuỗi con là "99php"

    12. [A-z0-9]: một kí tự họăc một kí số

    PHP:
    <?php
    if (preg_match("/[A-z0-9]php/i""PHP và cách dùng hàm preg_match.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : hàm kiểm tra xem trước chuỗi "PHP" có tồn tại các ký tự số từ "0->9" và ký tự "a->z" trong chuỗi "PHP và cách dùng hàm preg_match." hay không. Kết quả là không tìm thấy vì ta tìm thấy chuỗi "PHP" trước đó không có ký tự số và ký tự chữ.

    13. {} qui định số lượng

    PHP:
    <?php
    if (preg_match("/[a-z]{4,5}php/i""PHP và cách dùng hàm preg_match.")) {
        echo 
    "Đã tìm thấy ký tự cần tìm.";
    } else {
        echo 
    "Không tìm thấy ký tự cần tìm.";
    }
    ?>
    Giải thích : hàm kiểm tra xem trước chuỗi "PHP" có tồn tại từ 4 hoặc 5 các ký tự "a->z" trong chuỗi "PHP và cách dùng hàm preg_match." hay không. Kết quả là không tìm thấy vì trước chuỗi "PHP" ở trên không có ký tự nào ở trước nó.

    Kết thúc : kiến thức thu thập được từ internet và đã chỉnh sửa lại, cảm ơn người viết bài.

    ITSEOVN mong những kiến thức này sẽ giúp được cho các bạn đang và sẽ học lập trình php.
     
    Cảm ơn đã xem bài:

    Cách dùng hàm preg_match trong lập trình php

    Chỉnh sửa cuối: 27/5/15
  2. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,029
    Đã được thích:
    80
    Điểm thành tích:
    48
    Những hàm php rất quan trọng trong lập trình
     
  3. yeuseo
    Tham gia ngày:
    15/8/14
    Bài viết:
    92
    Đã được thích:
    1
    Điểm thành tích:
    6
    1 hàm mà nhiều công dụng quá, cảm ơn ad
     
  4. saudom
    Tham gia ngày:
    7/3/14
    Bài viết:
    11
    Đã được thích:
    0
    Điểm thành tích:
    1
    hàm này chuyên dùng để thay thế chuỗi thì phải
     
  5. admin
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,897
    Đã được thích:
    1,198
    Điểm thành tích:
    113
    Giới tính:
    Nam
    preg_filter: Thực hiện việc tìm kiếm và thay thế các ký tự trong một chuỗi
    preg_grep: Trả về kết quả là một mảng các phần tử mà thỏa mãn mẫu tìm kiếm (pattern)
    preg_last_error: Trả về mã lỗi của hàm PCRE vừa thực thi trước đó
    preg_match_all: Thực hiện hàm so sánh toàn diện từ đầu đến cuối
    preg_match: Thực hiện hàm so sánh và dừng lại sau khi thấy mẫu
    preg_quote: Thêm các dấu quote \ trước các ký tự đặc biệt
    preg_replace_callback: Thực hiện việc tìm kiếm mẫu, thay thế bằng một chuỗi ký bằng hàm
    preg_replace: Thực hiện việc tìm kiếm mẫu và thay thế bằng một chuỗi ký tự
    preg_split: Tách một chuỗi ký tự bằng các ký tự đặc biệt
     


Chủ để tương tự : Cách dùng
Diễn đàn Tiêu đề Date
Ngôn ngữ lập trình web PHP Cookies là gì? cách sử dụng Cookies trong php 2/4/16
Ngôn ngữ lập trình web PHP Cách sử dụng hàm trong PHP - Bài 15 7/1/16
Ngôn ngữ lập trình web PHP Cách gọi code php trong code HTML5 7/1/16
Ngôn ngữ lập trình web PHP Cách trình diễn các bài đăng gần đây với plugin trong site wordpress 10/8/15
Ngôn ngữ lập trình web PHP Lấy Title và meta Description, Keyword trong PHP sử dụng Simple HTML Dom Parser 1/5/18