⊗ppPmRgSP 248 of 447 menu

Các nhóm bắt (capturing groups) khi tìm kiếm bằng biểu thức chính quy trong PHP

Giả sử chúng ta có một chuỗi chứa tên miền:

<?php $str = 'eee site.ru bbb'; ?>

Hãy tìm tên miền đó và tách nó thành các phần: tách tên miền khỏi phần mở rộng (zone) của nó. Để làm điều này, chúng ta sẽ sử dụng các nhóm bắt (capturing groups) của biểu thức chính quy.

Các nhóm bắt đại diện cho các phần tử của mảng, vào đó bạn có thể đặt các phần của kết quả tìm được bởi biểu thức chính quy. Trong trường hợp của chúng ta, vào nhóm bắt đầu tiên chúng ta có thể đặt tên miền, và vào nhóm thứ hai - phần mở rộng của nó.

Hãy thực hiện điều đó. Đầu tiên, hãy viết biểu thức chính quy tìm tên miền trong chuỗi:

<?php $reg = '#[a-z0-9_-]+\.[a-z]{2,}#'; ?>

Bây giờ, hãy đánh dấu trong biểu thức chính quy của chúng ta phần nào sẽ đi vào nhóm bắt nào. Điều này được thực hiện bằng cách sử dụng dấu ngoặc tròn. Hãy dùng chúng để tách phần biểu thức chính quy tìm tên miền và phần tìm phần mở rộng tên miền:

<?php $reg = '#([a-z0-9_-]+)\.([a-z]{2,})#'; ?>

Bây giờ trong hàm preg_match, với tham số thứ ba, chúng ta chỉ định một biến (tên bất kỳ):

<?php preg_match($reg, $str, $res); ?>

Vào biến được chỉ định sẽ chứa một mảng với các nhóm bắt được tìm thấy. Trong đó, phần tử thứ 0 của mảng sẽ chứa chuỗi tìm được, phần tử thứ nhất - nhóm bắt thứ nhất, phần tử thứ hai - nhóm bắt thứ hai và cứ tiếp tục như vậy:

<?php preg_match($reg, $str, $res); var_dump($res); // sẽ xuất ra ['site.ru', 'site', 'ru'] ?>

Cho một chuỗi chứa ngày tháng:

<?php $str = '2025-12-31'; ?>

Hãy đặt năm, tháng và ngày vào các nhóm bắt riêng biệt.

Cho một chuỗi chứa tên tệp:

<?php $str = 'index.html'; ?>

Hãy đặt tên tệp và phần mở rộng của nó vào các nhóm bắt riêng biệt.

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