Biểu thức chính quy là một công cụ cực kỳ hữu ích và giống như bất kỳ nhà phát triển nào, tôi sử dụng nó rất nhiều khi làm việc với văn bản. Vì tôi luôn quên cú pháp liên quan đến các biểu thức chính quy, nên tôi nghĩ việc tạo một bảng gian lận đơn giản có thể giúp ích cho tôi và có thể cả những người khác nữa. ]
Các phương thức hữu ích nhất của Python và sự khác biệt giữa chúngLời nhắc nhở. mô-đun re thực hiện chức năng Biểu thức chính quy trong Python
- lại. cuộc thi đấu. khớp một mẫu biểu thức chính quy với phần đầu của chuỗi [được trả về. lại. Cuộc thi đấu]
- lại. toàn trận. khớp một mẫu biểu thức chính quy với toàn bộ chuỗi [được trả về. lại. Cuộc thi đấu]
- lại. Tìm kiếm. tìm kiếm một chuỗi để tìm sự hiện diện của mẫu biểu thức chính quy [được trả về. lại. Cuộc thi đấu ]
- lại. phụ. thay thế các lần xuất hiện của mẫu biểu thức chính quy được tìm thấy trong một chuỗi, tìm kiếm mẫu như trong re. tìm kiếm [trả lại. chuỗi]
- lại. tìm tất cả. tìm kiếm tất cả các lần xuất hiện của mẫu biểu thức chính quy trong chuỗi, tìm kiếm mẫu như trong re. tìm kiếm [trả về. danh sách các chuỗi]
- lại. tách ra. tách một chuỗi bằng các lần xuất hiện của mẫu biểu thức chính quy [được trả về. danh sách các chuỗi]. ❗️lưu ý các chuỗi trống được trả về ❗️
Siêu ký tự đặc biệt
Lặp lại siêu ký tự
Bảng bên dưới tóm tắt số lượng khớp của các lần lặp lại [tham lam] mà mô-đun re thực hiện cho Biểu thức chính quy trước đó. Tham lam có nghĩa là mô-đun re sẽ khớp với càng nhiều lần lặp lại càng tốt
Các lớp nhân vật hữu ích
Mẹo cực kỳ hữu ích. nhóm và khai thác nhóm
Nhóm không chỉ cho phép bạn khớp các chuỗi văn bản bên trong các chuỗi mà còn trích xuất các chuỗi con theo các nhóm bạn xác định trong một mẫu
Bạn có thể xác định các nhóm trong một mẫu bằng cách sử dụng dấu ngoặc tròn — [] và bạn có thể trích xuất các nhóm từ các chuỗi phù hợp bằng cách gọi phương thức group[] trên re. đối tượng phù hợp
Ví dụ: giả sử chúng tôi muốn khớp một email trong một văn bản, nhưng chúng tôi cũng muốn dễ dàng trích xuất tên người dùng, tên miền và tiện ích mở rộng ra khỏi email. Vì vậy, nếu chúng ta nhận được văn bản sau. “abc@gmail. com”, chúng tôi muốn [1] phát hiện đây là email [theo mẫu] và [2] phát hiện tên người dùng trong email này là “abc”, tên miền là “gmail” và phần mở rộng trong “ . Trước tiên, hãy xác định một mẫu đơn giản sẽ phát hiện email này. Lưu ý, tôi sẽ sử dụng một mẫu đơn giản hóa giả định rằng chỉ có các ký tự chữ và số trong mỗi thành phần email, điều này không đúng trong thực tế nhưng nó sẽ hoạt động cho ví dụ nhóm của chúng tôi
Bây giờ, tôi sẽ thêm các nhóm vào mẫu. Về mặt kỹ thuật, tôi sẽ chỉ thêm dấu ngoặc xung quanh các phần khác nhau của mẫu của mình. tên người dùng, tên miền, phần mở rộng
Bây giờ chúng tôi đã sẵn sàng để phù hợp với mô hình của chúng tôi
Và đây là sự kỳ diệu của các nhóm. Chúng tôi không chỉ có thể lấy văn bản phù hợp mà còn trích xuất các nhóm riêng biệt theo chỉ mục nhóm vì nó đã được xác định trong mẫu, giống như thế này
Đẹp nhỉ?
Nhân tiện, nhóm[0] sẽ trả về chuỗi đại diện cho toàn bộ trận đấu. Trong trường hợp của chúng ta. “tên_của_bạn@gmail. com”
ThưởngĐôi khi bạn muốn chơi với tất cả các phương pháp này và bạn cần nó nhanh chóng, vì vậy chúng tôi đã sắp xếp chúng trong một tệp Google Colab cực kỳ đơn giản để chơi. Bạn có thể tìm thấy các tập tin trên trang này
Trang này cung cấp bảng cheat regex Python mà bạn có thể nhanh chóng tham khảo khi làm việc với các biểu thức chính quy
Bộ nhân vật
PatternMeaning\w
Khớp một ký tự từ a-z, A-Z, 0-9 và dấu gạch dưới [_]\d
Khớp một chữ số 0-9\s
Khớp khoảng trắng bao gồm \t, \n, và \r và ký tự khoảng trắng.
Khớp bất kỳ ký tự nào ngoại trừ dòng mới\W
Khớp một ký tự ngoại trừ một từ mỏ neo
MẫuÝ nghĩa^
Khớp ở đầu chuỗi$
Khớp ở cuối chuỗi\b
Khớp với vị trí được xác định là ranh giới từ\d
0Khớp với vị trí không phải là ranh giới từđịnh lượng
Bộ định lượng [Tham lam]Bộ định lượng không tham lam [Lười biếng]Ý nghĩa_______1_______1\d
2Ghép phần tử đứng trước nó bằng 0 hoặc nhiều lần. \d
3_______1_______4Nối phần tử trước nó một hoặc nhiều lần. \d
5_______1_______6Ghép phần tử đứng trước nó bằng 0 hoặc một lần. \d
7\d
8Ghép chính xác phần tử đứng trước nó \d
9 lần. \s
0\s
1Ghép phần tử đứng trước nó ít nhất \d
9 lần. \s
3_______2_______4Nối phần tử đứng trước nó từ \d
9 đến \s
6 lầnBộ & Phạm vi
Ý nghĩa mẫu\s
7So khớp với bất kỳ phần tử nào trong số ba phần tử X, Y và Z\s
8So khớp một phạm vi từ X đến Y\s
9So khớp với bất kỳ phần tử đơn nào ngoại trừ X, Y và Z.
0So khớp với bất kỳ phần tử đơn lẻ nào\s
0So khớp phần tử trước nó ít nhất \d
9 lần. \s
3Nối phần tử đứng trước nó từ \d
9 đến \s
6 lầnChụp nhóm
Mẫu Ý nghĩa.
6Chụp X trong nhóm.
7Chụp X và gán tên cho nó.
8Tham khảo nhóm chụp #N.
9Tham khảo nhóm chụp #N [cú pháp thay thế]luân phiên
Mẫu Ý nghĩa_______4_______0Khớp X hoặc YNhìn xung quanh
Mô hìnhÝ nghĩa\W
1Trộn X nhưng chỉ khi nó được theo sau bởi Y\W
2Trộn X nhưng chỉ khi nó KHÔNG được theo sau bởi Y\W
3Trộn X nếu có Y trước nó_______4_______4Trộn X nếu không có Y trước nóhàm regex
Bảng sau đây hiển thị hàm regex từ mô-đun re
Chức năng Mô tả\W
5Trả về danh sách các kết quả phù hợp hoặc Không có\W
6Trả về một trình vòng lặp mang lại tất cả các kết quả khớp không trùng lặp\W
7Trả về kết quả khớp đầu tiên\W
8Trả về một đối tượng Khớp nếu toàn bộ chuỗi khớp với một mẫu\W
9Trả lại kết quả khớp ở đầu chuỗi hoặc Không có\D
0Trả về một chuỗi khớp được thay thế bằng một chuỗi thay thế\D
1Chia một chuỗi ở đầu Cờ Regex
FlagAliasInline FlagÝ nghĩa_______5_______2\D
3\D
4\D
2 chỉ liên quan đến các mẫu byte. Tính năng này làm cho \w
, \W
,\b
, \d
0, \d
, \D và \S
chỉ khớp ASCII thay vì khớp Unicode đầy đủ. \S
2N/AN/AThe \S
2 hiển thị thông tin gỡ lỗi của mẫu đã biên dịch. \S
4\S
5\S
6perform case-insensitive matching. Điều đó có nghĩa là \S
7 cũng sẽ khớp với các chữ cái viết thường. \S
8\S
9^
0\S
8 chỉ liên quan đến mẫu byte. Nó làm cho \w
, \W
, \b
, \d
0 và khớp phân biệt chữ hoa chữ thường phụ thuộc vào ngôn ngữ hiện tại. _\S
8 không tương thích với cờ \D
2. ^
8^
9\D
4The $
1 làm cho _______7_______ khớp ở đầu một chuỗi và ở đầu mỗi dòng và $
khớp ở cuối một chuỗi và ở cuối mỗi dòng. $
4$
5$
6Theo mặc định, dấu chấm [.
] khớp với bất kỳ ký tự nào ngoại trừ một dòng mới. _______8_______4 làm cho dấu chấm [.
] khớp với tất cả các ký tự bao gồm cả một dòng mới. \b
0_______9_______1\b
2Cờ \b
0 cho phép bạn sắp xếp một mẫu thành các phần hợp lý một cách trực quan và thêm nhận xétBạn có thấy hướng dẫn này hữu ích không?
Có Không