Đầu và cuối chuỗi trong regex PHP
Tồn tại các ký tự đặc biệt biểu thị
đầu chuỗi ^ hoặc cuối chuỗi $.
Chúng ta hãy xem cách chúng hoạt động qua các ví dụ.
Ví dụ
Trong ví dụ này, mẫu tìm kiếm như sau: thay thế
'aaa' bằng '!' chỉ khi nó
đứng ở đầu chuỗi:
<?php
$str = 'aaa aaa aaa';
$res = preg_replace('#^aaa#', '!', $str);
?>
Kết quả, biến sẽ ghi lại như sau:
'! aaa aaa'
Ví dụ
Trong ví dụ này, mẫu tìm kiếm như sau: thay thế
'aaa' bằng '!' chỉ khi nó
đứng ở cuối chuỗi:
<?php
$str = 'aaa aaa aaa';
$res = preg_replace('#aaa$#', '!', $str);
?>
Kết quả, biến sẽ ghi lại như sau:
'aaa aaa !'
Ví dụ
Khi ở đầu regex là ^,
và ở cuối - $, thì bằng cách này chúng ta
kiểm tra toàn bộ chuỗi có khớp với
regex hay không.
Trong ví dụ tiếp theo, mẫu tìm kiếm như sau:
chữ cái 'a' lặp lại một hoặc
nhiều lần, thay thế toàn bộ chuỗi bằng '!'
chỉ khi nó chỉ gồm toàn chữ cái 'a'.
<?php
$str = 'aaa';
$res = preg_replace('#^a+$#', '!', $str);
?>
Kết quả, biến sẽ ghi lại như sau:
'!'
Bài tập thực hành
Cho chuỗi:
<?php
$str = 'abc def xyz';
?>
Hãy viết regex tìm chuỗi con đầu tiên gồm các chữ cái.
Cho chuỗi:
<?php
$str = 'abc def xyz';
?>
Hãy viết regex tìm chuỗi con cuối cùng gồm các chữ cái.
Cho chuỗi:
<?php
$str = '$aaa$ $bbb$ $ccc';
?>
Hãy viết regex tìm chuỗi con cuối cùng gồm các chữ cái, được bao quanh bởi các ký tự dollar.