⊗pyPmRENPB 71 of 129 menu

Dấu ngoặc không lưu giữ trong biểu thức chính quy Python

Dấu ngoặc ( ) thực hiện hai chức năng - nhóm các ký tự và chức năng nhóm bắt giữ (capturing group). Vậy phải làm gì nếu cần nhóm, nhưng không muốn bắt giữ vào nhóm? Để giải quyết vấn đề như vậy người ta đã nghĩ ra dấu ngoặc không lưu giữ (?: ) - chúng nhóm, nhưng không bắt giữ vào nhóm.

Ví dụ

Trong ví dụ sau, cặp ngoặc đầu tiên chúng ta cần để nhóm, còn cặp thứ hai - để bắt giữ. Tuy nhiên, cả hai cặp ngoặc đều lưu giữ dữ liệu vào nhóm bắt giữ:

txt = 'abab123' res = re.search('(ab)+([1-9]+)', txt)

Kết quả trong các nhóm bắt giữ của chúng ta sẽ là như sau:

print(res[0]) # sẽ in ra 'abab123' print(res[1]) # sẽ in ra 'ab' print(res[2]) # sẽ in ra '123'

Ví dụ

Hãy làm sao để cặp ngoặc đầu tiên chỉ nhóm, nhưng không bắt giữ vào nhóm:

txt = 'abab123' res = re.search('(?:ab)+([1-9]+)', txt)

Kết quả trong nhóm bắt giữ đầu tiên sẽ là số của chúng ta:

print(res[1]) # sẽ in ra '123'
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