⊗jsSpREEP 129 of 294 menu

Nhóm bắt giữ (Capture groups) trong chính biểu thức chính quy trong JavaScript

Nội dung của các nhóm bắt giữ không chỉ có thể truy cập được trong chuỗi thay thế, mà còn ngay trong chính biểu thức chính quy: chúng ta có thể đặt một thứ gì đó vào một nhóm bắt giữ, sau đó ngay trong biểu thức chính quy có thể nói rằng tại đây phải là nội dung của nhóm bắt giữ đó.

Nội dung của các nhóm bắt giữ có thể truy cập được bằng số thứ tự của chúng, phía trước có dấu gạch chéo ngược. Ví dụ, nhóm bắt giữ đầu tiên sẽ có thể truy cập như thế này: \1, nhóm bắt giữ thứ hai như thế này - \2, thứ ba - \3 và cứ tiếp tục như vậy.

Tôi tin chắc rằng tất cả những gì viết ở trên hiện còn khá mơ hồ đối với bạn. Điều này không có gì lạ, bởi vì các nhóm bắt giữ là phần khó hiểu nhất của biểu thức chính quy. Hãy cùng tìm hiểu thông qua các ví dụ.

Ví dụ

Giả sử chúng ta có một chuỗi như thế này:

let str = 'aa bb cd ef';

Hãy tìm trong đó tất cả các vị trí có hai chữ cái giống nhau bất kỳ đứng liên tiếp. Để giải quyết nhiệm vụ, chúng ta sẽ tìm bất kỳ chữ cái nào, đặt nó vào một nhóm bắt giữ, sau đó kiểm tra xem ký tự tiếp theo có phải là nội dung của nhóm bắt giữ đó không:

let res = str.replace(/([a-z])\1/g, '!');

Kết quả, biến sẽ được gán giá trị sau:

'! ! cd ef'

Ví dụ

Giả sử chúng ta có một chuỗi như thế này:

let str = 'asxca buzxb csgd';

Hãy tìm trong đó tất cả các từ có chữ cái đầu tiên và cuối cùng giống nhau. Để giải quyết nhiệm vụ, chúng ta viết mẫu sau: một chữ cái, sau đó là một hoặc nhiều chữ cái khác, và cuối cùng là một chữ cái giống như chữ cái đầu tiên:

let res = str.replace(/([a-z])[a-z]+\1/g, '!');

Kết quả, biến sẽ được gán giá trị sau:

'! ! csgd'

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

Cho một chuỗi:

let str = 'aaa bbb ccc xyz';

Tìm tất cả các chuỗi con có chứa ba chữ cái giống nhau đứng liên tiếp.

Cho một chuỗi:

let str = 'a aa aaa aaaa aaaaa';

Tìm tất cả các chuỗi con có chứa hai hoặc nhiều hơn chữ cái giống nhau đứng liên tiếp.

Cho một chuỗi:

let str = 'aaa aaa bbb bbb ccc ddd';

Tìm tất cả các chuỗi con có chứa hai từ giống nhau đứng liên tiếp.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối