Giới thiệu biểu thức chính quy trong PHP
Biểu thức chính quy là các lệnh dùng để tìm kiếm và thay thế phức tạp. Chúng cho phép làm những điều rất thú vị, nhưng, tiếc là, khá khó để nắm vững.
Có một số hàm PHP để làm việc
với biểu thức chính quy. Chúng ta sẽ bắt đầu làm quen
với chúng qua ví dụ về preg_replace. Hàm này
nhận tham số đầu tiên là thứ cần thay thế,
tham số thứ hai - thứ thay thế, và tham số thứ ba
- chuỗi mà cần thực hiện thay thế trong đó:
<?php
preg_replace(thứ cần thay, thứ thay thế, chuỗi);
?>
Tuy nhiên, tham số đầu tiên hàm của chúng ta nhận không phải
chỉ là một chuỗi thông thường, mà là một biểu thức chính quy,
biểu diễn dưới dạng một chuỗi với một tập lệnh,
được đặt bên trong các ký tự dấu thăng #.
Những dấu thăng này được gọi là dấu phân cách
của biểu thức chính quy.
Sau dấu phân cách có thể viết các bổ tử - các lệnh làm thay đổi tính chất chung của biểu thức chính quy.
Bản thân biểu thức chính quy bao gồm hai loại ký tự: những ký tự biểu thị chính nó và những ký tự-lệnh, được gọi là ký tự đặc biệt.
Chữ cái và chữ số biểu thị chính nó. Trong ví dụ
tiếp theo, chúng ta sẽ sử dụng biểu thức chính quy
để thay thế chữ cái 'a' bằng '!':
<?php
preg_replace('#a#', '!', 'bab'); // trả về 'b!b'
?>
Còn dấu chấm là một ký tự đặc biệt
và biểu thị một ký tự bất kỳ. Trong ví dụ
tiếp theo, chúng ta sẽ tìm chuỗi theo mẫu sau:
chữ cái 'x', sau đó là bất kỳ ký tự nào, sau đó
lại là chữ cái 'x':
<?php
preg_replace('#x.x#', '!', 'xax eee'); // trả về '! eee'
?>
Cho chuỗi:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Hãy viết biểu thức chính quy tìm các chuỗi
'ahb', 'acb', 'aeb'
theo mẫu: chữ cái 'a', bất kỳ ký tự nào,
chữ cái 'b'.
Cho chuỗi:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Hãy viết biểu thức chính quy tìm các chuỗi
'aeeb', 'adcb', 'axeb'
theo mẫu: chữ cái 'a', hai ký tự bất kỳ,
chữ cái 'b'.