8/12/15

Bài 10: Negative Và Positive Lookahead trong Regular Expression

Cú pháp: (?=)
Ở ví dụ một ta sẽ dùng Positive Lookahead để xác định câu partern 'chuỗi nào có phần đuôi bằng @gmail.com thì sẽ chọn'. Các bạn xem code nhé.
1
2
3
4
5
$str 'freetuts@gmail.com thehalfheart@facebook.com hoclaptrinh@yahoo.com freetuts.net@gmail.com';
preg_match_all('/[^\s]+(?=@gmail\.com)/'$str$matches);
echo '<pre>';
print_r($matches);
echo '</pre>';

Chạy lên và kết quả là:
Array
(
    [0] => Array
        (
            [0] => freetuts
            [1] => freetuts.net
        )
)
Bạn có thấy chuỗi partern mình có thêm một đoạn (?=@gmail\.com) không, đoạn này chính là Positive Lookahead xác định chuỗi @gmail.com. Còn đoạn partern đầu tiên [^\s]+ là tìm dãy ký tự cho tới khi gặp khoảng trắng. Và kết quả đúng như mong đợi.
Nguồn: (code.freetuts.net)

0 nhận xét: