⊗pyPmRESF 73 of 129 menu

Cờ cho chuỗi biểu thức chính quy trong Python

Để thiết lập cờ như một trong các tham số tùy chọn cho các phương thức làm việc với biểu thức chính quy, sử dụng cú pháp sau:

flags=re.tên cờ

Các cờ chính để làm việc với biểu thức chính quy

Cờ Chức năng
re.IGNORECASE Bỏ qua kiểu chữ hoa/thường của ký tự.
re.DOTALL Dấu chấm biểu thị bất kỳ ký tự nào, bao gồm cả ký tự xuống dòng.
re.I Làm cho việc tìm kiếm không phân biệt chữ hoa/thường.
re.L Tìm kiếm từ phù hợp với ngôn ngữ hiện tại. Cách diễn giải này ảnh hưởng đến nhóm ký tự chữ cái (\w\W), cũng như hành vi của ranh giới từ (\b\B).
re.M Ký tự $ thực hiện tìm kiếm ở cuối bất kỳ dòng văn bản nào (không chỉ cuối văn bản) và ký tự ^ thực hiện tìm kiếm ở đầu bất kỳ dòng văn bản nào (không chỉ ở đầu văn bản).
re.S Thay đổi giá trị của dấu chấm (.) thành khớp với bất kỳ ký tự nào, bao gồm cả ký tự xuống dòng mới.
re.U Diễn giải các chữ cái theo bộ ký tự Unicode. Cờ này ảnh hưởng đến hành vi của \w, \W, \b, \B. Trong Python 3+, cờ này được thiết lập mặc định.
re.X Cho phép cú pháp biểu thức chính quy nhiều dòng. Nó bỏ qua khoảng trắng bên trong mẫu (ngoại trừ khoảng trắng bên trong bộ [] hoặc khi được thoát bằng dấu gạch chéo ngược) và xử lý ký tự '#' không được thoát như một chú thích.

Ví dụ

Với cờ re.IGNORECASE có thể bỏ qua kiểu chữ hoa/thường của ký tự. Hãy xem cách thực hiện. Trong ví dụ này biểu thức chính quy sẽ chỉ tìm thấy các chữ cái viết thường:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Kết quả thực thi mã:

'! ! CCC DDD'

Ví dụ

Và bây giờ thêm vào tham số thứ tư của phương thức cờ re.IGNORECASE và biểu thức chính quy sẽ bắt đầu tìm ký tự ở mọi kiểu chữ hoa/thường:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Kết quả thực thi mã:

'! ! ! !'

Ví dụ

Hãy tìm tất cả ký tự xuống dòng bằng biểu thức chính quy:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

Kết quả mã đã thực thi:

'aaa!bbb'

Ví dụ

Nhưng, nếu cần thay thế tất cả các ký tự, thì khi đặt dấu chấm trong biểu thức chính quy, các ký tự xuống dòng sẽ không bị chụp:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

Kết quả mã đã thực thi:

'!!! !!!'

Ví dụ

Để sửa lỗi này, nên áp dụng cờ re.DOTALL:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

Kết quả mã đã thực thi:

'!!!!!!!'

Ví dụ

Trong tham số có thể truyền nhiều cờ, bằng cách đặt toán tử + giữa chúng. Trước tiên hãy thay thế chữ cái 'a' ở cuối dòng:

txt = ''' aaa AAA aaa''' res = re.sub('aaa , '!', txt) print(res)

Kết quả mã đã thực thi:

''' aaa AAA ! '''

Ví dụ

Bây giờ hãy đặt cờ re.M:

res = re.sub('aaa , '!', txt, flags=re.M) print(res)

Kết quả mã đã thực thi:

''' ! AAA ! '''

Ví dụ

Bây giờ hãy áp dụng thêm cờ để bỏ qua kiểu chữ hoa/thường:

res = re.sub('aaa , '!', txt, flags=re.M+re.IGNORECASE) print(res)

Kết quả mã đã thực thi:

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