Đầ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<?php
  $str = 'aaa aaa aaa';
  $res = preg_replace('#^aaa#', '!', $str);
?>

Kết quả, biến sẽ ghi lại như sau:

php'! 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<?php
  $str = 'aaa aaa aaa';
  $res = preg_replace('#aaa$#', '!', $str);
?>

Kết quả, biến sẽ ghi lại như sau:

php'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<?php
  $str = 'aaa';
  $res = preg_replace('#^a+$#', '!', $str);
?>

Kết quả, biến sẽ ghi lại như sau:

php'!'

Bài tập thực hành

Задание 1

Cho chuỗi:

php<?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.

Задание 2

Cho chuỗi:

php<?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.

Задание 3

Cho chuỗi:

php<?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.