[Bài đọc] Các hàm thao tác với Regular Expression trong PHP
NỘI DUNG BÀI VIẾT
PHP xây dựng sẵn các hàm giúp thao tác với Biểu thức chính quy. Sau đây là các hàm thường hay được sử dụng:
1. Hàm preg_match():
Hàm preg_match()
được dùng để kiểm tra, so khớp và lấy kết quả của việc so sánh chuỗi dựa vào biểu thức chính quy. Hàm trả về TRUE/FALSE.
Cú pháp:
preg_match ( $pattern , $subject, &$matches)
Trong đó:
$pattern
là biểu thức Regular Expression$subject
là chuỗi cần kiểm tra$matches
là kết quả trả về, đây là một tham số tùy chọn, truyền vào ở dạng tham chiếu.
Kết quả: Hàm preg_match()
sẽ trả về TRUE
nếu so khớp $pattern với $subject và FALSE
nếu không khớp.
Ví dụ 1:
<?php$string = 5;$pattern = '/^[0-9]$/';if (preg_match($pattern, $string)) { echo 'Khớp';} else { echo 'Không khớp';}?>
Kết quả:
Khớp
Ví dụ 2:
<?php$subject = "Chào mừng bạn đến với CodeGym. CodeGym - Hệ thống đào tạo lập trình hiện đại.";$pattern = '/CodeGym/';print('<pre>');preg_match($pattern, $subject, $matches);print_r($matches);print('</pre>');?>
Kết quả:
Array ( [0] => CodeGym )
2. Hàm preg_match_all():
Về cơ chế hoạt động của hàm preg_match_all()
cũng tương tự hàm preg_match()
ở trên , tuy nhiên hai hàm này khác nhau ở chỗ , hàm preg_match_all()
sẽ trả về toàn bộ các giá trị được so sánh khớp, còn hàm preg_match()
chỉ trả về giá trị đầu tiên được so sánh khớp.
Ví dụ:
<?php$subject = "Chào mừng bạn đến với CodeGym. CodeGym - Hệ thống đào tạo lập trình hiện đại.";$pattern = '/CodeGym/';print('<pre>');preg_match_all($pattern, $subject, $matches);print_r($matches);print('</pre>');?>
Kết quả khi chạy đoạn chương trình trên:
Array ( [0] => Array ( [0] => CodeGym [1] => CodeGym ) )
3. Hàm preg_split():
Sử dụng hàm pre_split để chia nhỏ chuỗi thành mảng chứa các chuỗi con.
Cú pháp:
preg_split($pattern,$subject)
Hàm này tìm trong $subject
các chuỗi con phù hợp với mẫu $pattern
là một biểu thức RegExp.
$pattern
: Biểu thứcRegExp
để tìm kiếm$subject
: Chuỗi nhập vào để tìm kiếm và chia nhỏ
Ví dụ:
<?php $ip = "192.168.1.1"; $iparr = preg_split ("/\./", $ip); print "$iparr[0] <br />"; print "$iparr[1] <br />" ; print "$iparr[2] <br />" ; print "$iparr[3] <br />" ;?>
Kết quả:
19216811
Trong ví dụ trên, cho một chuỗi, biểu diễn địa chỉ IP, sử dụng hàm preg_split chia nhỏ xác định các thành phần của IP đó.
4. Hàm preg_repalce():
Hàm preg_replace dùng để tìm kiếm và thay thế một chuỗi nào đó khớp với đoạn Regular Expression truyền vào.
Cú pháp:
preg_replace($pattern, $replacement,$subject)
Trong đó:
Hàm này tìm trong $subject
các chuỗi con phù hợp với mẫu $pattern
là một biểu thức RegExp, thay thế chuỗi tìm thấy bởi $replacement
$pattern
: Biểu thứcRegExp
để tìm kiếm có thể là một chuỗi hoặc một mảng.$subject
: Chuỗi nhập vào để tìm kiếm$replacement
: Giá trị thay thế, có thể là chuỗi hoặc mảng. Nếu $pattern là mảng $replacement là chuỗi thì mọi kết quả tìm kiểm theo $pattern được thay thể bởi $replacement. Nếu cả $pattern, $replacement là mảng thì nó thay thế theo phần tử tương ứng.
Ví dụ:
<?php$str = "Vi du ve ham preg_replace 21321 878"; $str = preg_replace("/[0-9]+/", "2000", $str);print $str;?>
Kết quả:
Vi du ve ham preg_replace 2000 2000
Leave a Reply