Dấu ngoặc nhọn trong biểu thức chính quy PHP

Các toán tử +, *, ? rất tốt, tuy nhiên, chúng không thể chỉ định một số lần lặp lại cụ thể. Trong trường hợp này, toán tử {} sẽ giúp bạn.

Nó hoạt động như sau: {5} - lặp lại năm lần, {2,5} - lặp lại từ hai đến năm lần (bao gồm cả hai), {2,} - lặp lại hai lần trở lên.

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như thế này: chữ cái 'x', chữ cái 'a' một hoặc hai lần, chữ cái 'x':

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,2}x#', '!', $str);
?>

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

php'xx ! ! xaaax'

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như thế này: chữ cái 'x', chữ cái 'a' hai lần trở lên, chữ cái 'x':

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{2,}x#', '!', $str);
?>

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

php'xx xax ! !'

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như thế này: chữ cái 'x', chữ cái 'a' ba lần, chữ cái 'x':

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{3}x#', '!', $str);
?>

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

php'xx xax xaax !'

Ví dụ

Trong ví dụ này, mẫu tìm kiếm trông như thế này: chữ cái 'a' mười lần:

php<?php
  $str = 'aaa aaaaaaaaaa aaa';
  $res = preg_replace('#a{10}#', '!', $str);
?>

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

php'aaa ! aaa'

Ví dụ

Trong ví dụ này, tác giả mã muốn một mẫu như vậy: chữ cái 'x', chữ cái 'a' ba lần trở xuống, chữ cái 'x', nhưng, tiếc là điều này - {,3} - không hoạt động. Cần chỉ định rõ ràng:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,3}x#', '!', $str);
?>

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

php'xx ! ! !'

Ví dụ

Số không cũng được phép:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{0,3}x#', '!', $str);
?>

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

php'! ! ! !'

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

Задание 1

Cho một chuỗi:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Viết biểu thức chính quy tìm các chuỗi 'abba', 'abbba', 'abbbba' và chỉ chúng.

Задание 2

Cho một chuỗi:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Viết biểu thức chính quy tìm các chuỗi dạng 'aba', trong đó 'b' xuất hiện ít hơn ba lần (bao gồm).

Задание 3

Cho một chuỗi:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

Viết biểu thức chính quy tìm các chuỗi dạng 'aba', trong đó 'b' xuất hiện nhiều hơn bốn lần (bao gồm).