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

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 cụ thể. Trong trường hợp này, toán tử {} sẽ giúp bạn.

Nó hoạt động như sau: {5} - năm lần lặp, {2,5} – lặp lại từ hai đến năm (bao gồm cả hai), {2,} - lặp lại hai lần trở lên. Hãy chú ý rằng không có biến thể này - {,2} - không tồn tại. Hãy xem các ví dụ:

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':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');

Kết quả, biến sẽ ghi lại điều sau:

javascript'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':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');

Kết quả, biến sẽ ghi lại điều sau:

javascript'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':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');

Kết quả, biến sẽ ghi lại điều sau:

javascript'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:

javascriptlet str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');

Kết quả, biến sẽ ghi lại điều sau:

javascript'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, thật không may, điều này - {,3} - không hoạt động. Cần chỉ định rõ ràng:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');

Kết quả, biến sẽ ghi lại điều sau:

javascript'xx ! ! !'

Ví dụ

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');

Kết quả, biến sẽ ghi lại điều sau:

javascript'! ! ! !'

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

Задание 1

Cho một chuỗi:

javascriptlet 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:

javascriptlet 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 3 lần (bao gồm).

Задание 3

Cho một chuỗi:

javascriptlet 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 4 lần (bao gồm).