Chương tiếp theo của bài học nâng cao Python, Quantrimang. com sẽ cùng bạn tìm hiểu về Biểu thức chính quy (RegEx) với mô-đun 7 cùng các ví dụ cụ thể để bạn dễ hình dung và nắm bắt kỹ năng hơn về kiến thức về RegEx. Cùng theo dõi nhé Show
Biểu thức chính quy (RegEx) hay còn gọi là Biểu thức chính quy là một đoạn các ký tự đặc biệt theo các khuôn mẫu (mẫu) nhất định, đại diện cho chuỗi hoặc một chuỗi các tập tin. Ví dụ
Đoạn mã xác định trên quy tắc RegEx. Bất kỳ chuỗi nào có năm chữ cái, bắt đầu bằng 8 và kết thúc bằng 9Biểu thứcChu ví dụMô tả 0 1Không phù hợp vì chỉ có 3 ký tự 2Phù hợp 3Phù hợp 4Không phù hợp vì chữ cái đầu viết hoa 5 6Không phù hợp vì chữ cái đầu viết hoa 5 và nhiều hơn 5 ký tựBiểu thức chính quy trong Python không thể hiện thông qua mô-đun 7, nên làm việc đầu tiên khi các bạn muốn sử dụng Biểu thức chính quy thì cần phải nhập mô-đun 7 vào chương trình. Try with ví dụ trên 4Ở đây chúng ta vừa sử dụng hàm 50 để tìm kiếm 51 tương ứng với 52. Phương thức trả về đối tượng tương ứng nếu tìm kiếm thành công, trả về 53 nếu không tìm thấyHầu hết như ngôn ngữ nào cũng hỗ trợ Biểu thức chính quy, kể cả như JavaScript, C#, Java, PHP, Ruby, SQL, Oracle, Perl. nhưng được sử dụng phổ biến nhất trong Unix/Linux Còn lại một số hàm khác có trong bùn 7 để hoạt động với RegEx. Trước khi đi sâu vào các hàm này, hãy tìm hiểu kỹ hơn về biểu thức chính quy RegExMẫu cú pháp sử dụng trong RegEx PythonMẫu ta hiểu là một đối tượng mẫu, một phiên bản đã được biên dịch của một biểu thức chính quy. Để chỉ định biểu thức chính quy, ta sử dụng các ký tự đặc biệt, bao gồm []. ^ $ * + ? Trong ví dụ trên là các ký tự 55 và 56Dấu gạch chéo ^a...s$57Sử dụng ký hiệu đánh dấu để hiển thị các ký tự bạn muốn khớp các tập tin Biểu thứcChuỗi ví dụMô tả 58 8Khớp với ký tự 8 61Khớp với ký tự 8 hoặc 63 64Không khớpỞ đây, 58 sẽ khớp nếu chuỗi bạn truyền có chứa bất kỳ ký tự 8, 67 hoặc 63 nàoBạn cũng có thể chỉ định một phạm vi của các ký tự bằng cách sử dụng 69 bên trong dấu ngoặc nhọn
Nếu ký tự đầu tiên của tập hợp là 55 thì tất cả các ký tự không được định nghĩa trong tập hợp sẽ được khớp như vậy
Các ký tự đặc biệt trong 57 sẽ được coi là ký tự thông thường
Dấu chấm findall(partern, string)67Dấu chấm khớp với bất kỳ ký tự đơn thông thường nào ngoại trừ ký tự tạo dòng mới 68Biểu thứcChu ví dụMô tả 69 8Không khớp vì chỉ có một ký tự 61Khớp vì có hai ký tự 72Khớp vì có hai ký tự trở lênShutdown ^a...s$55Biểu tượng dấu mũ 55 được sử dụng để khớp với các ký tự đứng đầu một chuỗiBiểu thứcChu ví dụMô tả 75 8Khớp vì bắt đầu bằng 8 78Khớp vì bắt đầu bằng 8 50Không khớp vì 8 không nằm ở đầu_______652 78Khớp vì bắt đầu bằng 54 55Không khớp, bắt đầu bằng 8 nhưng các ký tự tiếp theo không phải 67Icon Dollar ^a...s$56Biểu tượng Dollar 56 được sử dụng để khớp các ký tự kết thúc một chuỗiBiểu thứcChuỗi ví dụMô tả 400 8Khớp vì kết thúc bằng 8 403Khớp vì kết thúc bằng 8 405Không khớp vì 8 không nằm ở vị trí cuối cùngDấu hoa thị ^a...s$407Biểu tượng dấu hoa thị 407 có thể khớp với chuỗi có hoặc không có ký tự được định nghĩa trước đó. Ký tự này có thể được lặp lại nhiều lần mà không bị giới hạn số lượngBiểu thứcChuỗi ví dụMô tả 409 410Khớp do ký tự trước 407 không thể xuất hiện 412Khớp vì có xuất hiện đầy đủ các ký tự 413Khớp do ký tự trước 407 có thể xuất hiện nhiều lần 415Không khớp vì không giống mẫu, 416 không kế 8 418Khớp vì có xuất hiện Dấu cộng findall(partern, string)65Biểu tượng dấu cộng 65 có thể khớp với chuỗi có một hoặc nhiều ký tự đã được định nghĩa trước nó. Ký tự này có thể được lặp lại nhiều lần mà không bị giới hạn số lượngBiểu thứcChu ví dụMô tả 421 410Không khớp vì ký tự 8 trước 65 không xuất hiện 412Khớp vì có xuất hiện đầy đủ các ký tự 413Khớp vì ký tự trước 65 có thể xuất hiện nhiều lần 415Không khớp vì không giống mẫu, 416 không kế 8 418Khớp vì có xuất hiện Dấu chấm hỏi ^a...s$432Biểu tượng dấu chấm hỏi có thể khớp với chuỗi có hoặc không có ký tự nào được định nghĩa trước nó. Ký tự này không thể lặp lại nhiều lần, chỉ giới hạn số lượng với một lần xuất hiện Biểu thứcChu ví dụMô tả 433 410Khớp vì ký tự trước 432 không thể xuất hiện 412Khớp vì đã xuất hiện đầy đủ các ký tự 413Không khớp vì ký tự trước 432 chỉ có thể xuất hiện 1 lần 415Không khớp vì không giống mẫu, 416 không kế 8 418Khớp có vì Dấu gạch chéo ^a...s$443Marking key sử dụng theo công thức tổng hợp. 444, đại diện cho ký tự phía sau công việc có thể xuất hiện tối thiểu n lần đến tối đa m lần. 416 and 446 is a positive integer and n <= m
449 450Không khớp vì không phù hợp với điều kiện 451Khớp vì có xuất hiện 2 ký tự 8 ( 453) 454Khớp vì có xuất hiện 2 và 3 ký tự 8 ( 456 và 457) 458Khớp vì xuất hiện 2 và 3 ký tự 8 Please try a another example. RegEx 462 this match với chuỗi có số tối thiểu 2 chữ số và số tối đa không quá 4 chữ sốBiểu thứcChuỗi ví dụMô tả 463 464Khớp vì mãn điều kiện. 465 466Khớp vì điều kiện. 467 và 468 469Không khớp vì chuỗi chỉ có 1 chữ sốVertical window ^a...s$470Biểu tượng dấu dọc 470 này có thể khớp với chuỗi tồn tại 1 trong 2 ký tự được định nghĩa trước và sau nóBiểu thứcChu ví dụMô tả 472 473Không khớp vì 8, 67 đều không xuất 476Khớp vì khớp điều kiện, có 8 xuất hiện. 478 479Khớp đáp vì điều kiện đối xứng, 8 và 67 đều xuất hiện. 482At here, 472 match with any string any contains 8 or 67Dấu gạch đầu dòng ^a...s$486Dấu bỏ đơn hàng 486 được sử dụng để gom nhóm các mẫu lại với nhau, chuỗi sẽ khớp với biểu thức chính quy bên trong dấu trích dẫn nàyVí dụ. 488 match với bất kỳ chuỗi nào có 8 hoặc 67 hoặc 63 đứng trước 492Biểu thứcChu ví dụMô tả 488 494Không khớp vì 8 hay 67 có đứng trước nhưng không liền với 492 498Khớp vì khớp điều kiện, có 67 xuất hiện trước 492. 01 02Khớp vì kỳ mãn điều kiện, cả 8 và 67 đều xuất hiện trước 492. 06Dấu gạch chéo ngược import re07Dấu gạch chéo ngược được sử dụng để thoát khỏi các ký tự đặc biệt, nghĩa là khi đứng trước một ký tự đặc biệt, 07 sẽ biến ký tự này thành một ký tự thông thường, bạn có thể tìm kiếm ký tự đặc biệt này trong chuỗi này Ví dụ. 09 sẽ khớp với chuỗi chứa ký tự 56 đứng trước 8. Tại đây, biểu tượng Dollar 56 không được sử dụng để khớp một chuỗi kết thúc bằng ký tự đi cùng nó như trong công cụ RegEx, 56 chỉ là ký tự bình thườngTuy nhiên, một dấu gạch chéo ngược cũng sẽ biến một ký tự thường liền kề phía sau thành một ký tự đặc biệt Ví dụ, trường hợp ký tự 67 không có dấu gạch chéo ngược sẽ khớp với các ký tự 67 thông thường, nhưng khi nó có thêm dấu gạch chéo ngược, 16 thì nó trở thành ký tự đặc biệt, không khớp với bất kỳ ký tự nào Some pattern going to import re071. 18 - Khớp với các ký tự theo sau nó nằm ở đầu chuỗiBiểu thứcChuỗi ví dụMô tả 19 20Khớp vì 21 nằm ở đầu chuỗi 22Không khớp vì 21 không nằm ở đầu chuỗi2. 16 - Khớp với các ký tự được chỉ định nằm ở đầu hoặc cuối của từBiểu thứcChuỗi ví dụMô tả 25 26Khớp mảnh vì điều kiện, 27 nằm ở đầu chuỗi 28Khớp mảnh vì mảnh điều kiện, 27 nằm ở đầu từ thứ 2 trong chuỗi 30Không khớp vì 27 nằm giữa từ trong chuỗi. foo\b 32Khớp vì khớp điều kiện, 27 nằm ở cuối chuỗi 34Khớp vì khớp điều kiện, 27 nằm ở cuối từ thứ 2 trong chuỗi 36Không khớp vì 27 nằm giữa từ trong chuỗi3. 38 - Trái ngược với 16, khớp với các ký tự được chỉ định không nằm ở đầu hoặc cuối của từBiểu thứcChu ví dụMô tả 25 26Không khớp vì 27 nằm ở đầu chuỗi 28Không khớp vì 27 nằm ở đầu từ thứ 2 trong chuỗi 30Khớp vì 27 nằm giữa các từ trong chuỗi. foo\b 32Không khớp vì 27 nằm ở cuối chuỗi 34Không khớp vì 27 nằm ở cuối từ thứ 2 trong chuỗi 36Khớp vì 27 nằm giữa các từ trong chuỗi4. 53 - Khớp với các ký tự là chữ số, tương đương với 54Biểu thứcChuỗi ví dụMô tả 53 56Khớp trả vì điều kiện trượt. 57 58Không khớp vì không có số nguyên nào xuất hiện5. 59 - Khớp với các ký tự không có số, tương đương với 60Biểu thứcChuỗi ví dụMô tả 59 62Khớp trả vì điều kiện trượt. 63 64Không khớp vì chuỗi nguyên số xuất hiện6. 65 - Khớp với bất kỳ ký tự khoảng trắng nào, tương đương với 66Biểu thứcChuỗi ví dụMô tả 65 68Khớp vì chuỗi có khoảng trắng 69Không khớp vì chuỗi không có khoảng trắng7. 70 - Khớp với bất kỳ ký tự nào không được khoảng trắng, tương đương với 71Biểu thứcChuỗi ví dụMô tả 70 73Khớp vì chuỗi có ký tự 74Không khớp vì toàn bộ chuỗi là khoảng trắng8. 75 - Khớp với bất kỳ ký tự chữ cái và chữ số nào, tương đương với 76Lưu ý. Dấu gạch dưới 77 cũng được coi là một ký tự chữ cái và chữ sốBiểu thứcChuỗi ví dụMô tả 75 79Khớp vì chuỗi có ký tự chữ và số 79 81Không khớp vì chuỗi không có ký tự chữ và số9. 82 - Khớp với bất kỳ ký tự nào không phải là chữ cái và chữ số, tương đương với 83Biểu thứcChu ví dụMô tả 75 85Khớp vì chuỗi có ký tự không phải chữ và số 86 58Không khớp vì chuỗi chỉ có ký tự chữ cáiLưu ý. Dấu gạch dưới 77 cũng được coi là một ký tự chữ cái và chữ sốLời khuyên. Để xây dựng các biểu thức quy định chính RegEx, bạn có thể sử dụng công cụ kiểm tra RegEx như 89. Công cụ này không chỉ tạo ra các biểu thức chính quy mà còn giúp bạn hiểu nó kỹ hơnBây giờ thì bạn đã hiểu những điều cơ bản về RegEx, hãy cùng thảo luận về cách sử dụng RegEx trong code Python Cụm từ thông dụng trong PythonBiểu thức chính quy trong Python không thể hiện thông qua mô-đun 7, nên làm việc đầu tiên khi các bạn muốn sử dụng biểu thức chính quy thì cần phải nhập mô-đun 7 vào chương trình
Mô-đun này có rất nhiều phương thức, hàm và hằng để làm việc với RegEx. định lượng. com sẽ liệt kê một số hoặc được sử dụng kèm theo ví dụ để bạn dễ hình dung và nắm bắt lại. tìm tất cả ()method re. findall() trả về một danh sách các chuỗi chứa tất cả các kết quả khớp với mẫu được đưa ra cú pháp
in which
Ví dụ. Trích xuất các số từ chuỗi cho trước sau. "chào 12 chào 89. xin chào 34" 5Kết quả trả về 6lại. tách ra()method re. split() sử dụng biểu thức chính quy để ngắt chuỗi thành các chuỗi con và trả về danh sách các chuỗi con này cú pháp 5in which
Ví dụ. Ngắt tại vị trí có ký tự khoảng trắng 6Kết quả trả về 7Ví dụ. Ngắt chuỗi ở khoảng trống đầu tiên của ký tự 5Kết quả 40Nếu không tìm thấy mẫu, hãy làm lại. split() return danh sách chứa chuỗi rỗng lại. phụ()Đây là một trong những phương thức quan trọng nhất được sử dụng với Biểu thức chính quy Lại. sub() sẽ thay thế tất cả các kết quả khớp với mẫu trong chuỗi bằng một nội dung khác được truyền vào và trả về chuỗi đã được sửa đổi cú pháp 41in which
Ví dụ. Mã chương trình xóa tất cả các khoảng trắng 42Kết quả trả về 43Nếu không tìm thấy kết quả phù hợp với mẫu, 02 sẽ trả về chuỗi rỗngVí dụ. Xóa chương trình mã 2 khoảng trắng đầu tiên 44Trả về đầu ra 45lại. subn()method re. subn() sử dụng tương tự như 02 ở trên, nhưng kết quả trả về bao gồm một bộ chứa hai giá trị. chuỗi mới sau khi được thay thế và số lần thay thế đã được thực hiện 46Kết quả trả về 47lại. Tìm kiếm()method re. search() sử dụng để tìm chuỗi tìm kiếm phù hợp với mẫu RegEx. Nếu tìm kiếm thành công, re. search() return đối tượng khớp, nếu không, nó sẽ trả về 53cú pháp 48in which
49Kết quả trả về 0Ở ví dụ này, 07 có chứa các đối tượng phù hợp với mẫu phù hợpĐối tượng phù hợpMột số phương thức và thuộc tính thường được sử dụng với đối tượng phù hợp cuộc thi đấu. tập đoàn()Phương thức group() trả về các phần của chuỗi khớp với mẫu 1Ở đây, biến 07 chứa các đối tượng khớpTa has pattern is 09 chia làm hai nhóm nhỏ 10 và 11. Bạn có thể nhận được một phần của chuỗi tương ứng với các nhóm con trong đơn đặt hàng này như sau 2cuộc thi đấu. bắt đầu(), khớp. end() và match. nhịp()Hàm bắt đầu () trả về chỉ mục bắt đầu của chuỗi con phù hợp. Tương tự, end() return chỉ mục cuối của chuỗi con phù hợp 3Hàm span() trả về bộ chứa chỉ mục bắt đầu và kết thúc của chuỗi phù hợp 4cuộc thi đấu. re and match. sợi dâyThuộc tính 7 của đối sánh đối tượng sẽ trả về một biểu thức chính quy. Tương tự, thuộc tính chuỗi trả về chuỗi đã được truyền trong đoạn mã 5Trên đây là tất cả các phương thức thường được sử dụng tốt nhất trong mô-đun lại Sử dụng tiền tố r trước RegExKhi tiền tố 13 hoặc 14 được sử dụng trước một biểu thức chính quy đại diện cho chuỗi tiếp theo sau nó chỉ là những ký tự bình thườngVí dụ. 68 là một dòng mới, còn 16 có nghĩa là chuỗi bao gồm hai ký tự. gạch chéo ngược 07 và 416Dấu gạch chéo ngược 07 được sử dụng để thoát khỏi các ký tự như đã nói ở trên. Tuy nhiên, sử dụng tiền tố 13 trước 07 thì nó chỉ là một ký tự bình thường 6Bài trước. Khai báo @property trong Python
Thứ Năm, 22/08/2019 08. 28 4,4 ★ 18 👨 41. 423 #Trăn # 0 Bình luận Sắp xếp theo Delete Login to Send Bạn nên đọc
con trăn
Trăn 3
Giới thiệu. Điều khoản. bảo mật. Hướng dẫn. Ứng dụng. Liên hệ. Quảng cáo. Facebook. YouTube. DMCA Giấy phép số 362/GP-BTTTT. Bộ Thông tin và Truyền thông cấp ngày 30/06/2016. Cơ quan chủ quản. CÔNG TY CỔ PHẦN MẠNG TRỰC TUYẾN META. address. 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại. 024 2242 6188. E-mail. thông tin @ meta. vn. Chịu trách nhiệm nội dung. Lê Ngọc Lâm Bản quyền © 2003-2022 QuanTriMang. com. Giữ toàn quyền. Không thể sao chép hoặc sử dụng hoặc phát hành lại bất kỳ nội dung nào thuộc về QuanTriMang. com khi chưa được cấp phép |