Python regex xóa trận đấu khỏi chuỗi

Trong phần này, trước tiên chúng tôi lấy chỉ mục của chuỗi con để thực hiện xóa sau đó, thêm vào độ dài của nó bằng cách sử dụng len[] và sau đó cắt bỏ các phần tử sau chuỗi đó bằng cách cắt

Python3




The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
50

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
51

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
52

 

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
53

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
54
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
55
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
56

 

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
0

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
1
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
2
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
3
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
5
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
6

 

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
7

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
8
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
55
The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best
0

 

The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best
1

The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best
2
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
55
The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best
4
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4
The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best
6
The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best
7

 

The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best
8

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
1
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
2____5501
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
5
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
504

Đầu ra

The original string is : geeksforgeeks is best for geeks
The string after removal : geeksforgeeks is best

Phương pháp #2. Sử dụng regex[] [ để loại bỏ sau khi xuất hiện số]

Đây là giải pháp cho một vấn đề hơi khác trong đó cần xóa chuỗi sau khi xuất hiện số. Chúng tôi sử dụng thao tác so khớp và nó giữ lại tất cả trước khi tìm thấy kết quả khớp

Tài liệu này là hướng dẫn giới thiệu về cách sử dụng biểu thức chính quy trong Python với mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25. Nó cung cấp phần giới thiệu nhẹ nhàng hơn phần tương ứng trong Thư viện tham khảo

Giới thiệu¶

Các biểu thức chính quy [được gọi là RE, hoặc biểu thức chính quy hoặc mẫu biểu thức chính quy] về cơ bản là một ngôn ngữ lập trình nhỏ, chuyên dụng cao được nhúng bên trong Python và được cung cấp thông qua mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25. Sử dụng ngôn ngữ nhỏ này, bạn chỉ định các quy tắc cho tập hợp các chuỗi có thể mà bạn muốn so khớp; . Sau đó, bạn có thể đặt các câu hỏi như “Chuỗi này có khớp với mẫu không?”, hoặc “Có vị trí nào phù hợp với mẫu ở bất kỳ đâu trong chuỗi này không?”. Bạn cũng có thể sử dụng RE để sửa đổi một chuỗi hoặc tách nó ra theo nhiều cách khác nhau

Các mẫu biểu thức chính quy được biên dịch thành một chuỗi mã byte, sau đó được thực thi bởi một công cụ khớp được viết bằng C. Để sử dụng nâng cao, có thể cần chú ý cẩn thận đến cách công cụ sẽ thực thi một RE nhất định và viết RE theo một cách nhất định để tạo mã byte chạy nhanh hơn. Tối ưu hóa không được đề cập trong tài liệu này vì nó yêu cầu bạn phải hiểu rõ về nội bộ của công cụ phù hợp

Ngôn ngữ biểu thức chính quy tương đối nhỏ và bị hạn chế, vì vậy không phải tất cả các tác vụ xử lý chuỗi có thể đều có thể được thực hiện bằng biểu thức chính quy. Cũng có những nhiệm vụ có thể được thực hiện với các biểu thức thông thường, nhưng các biểu thức này rất phức tạp. Trong những trường hợp này, bạn nên viết mã Python để xử lý;

Mẫu đơn giản¶

Chúng ta sẽ bắt đầu bằng cách tìm hiểu về các biểu thức chính quy đơn giản nhất có thể. Vì các biểu thức chính quy được sử dụng để hoạt động trên các chuỗi, chúng tôi sẽ bắt đầu với tác vụ phổ biến nhất. ký tự phù hợp

Để có giải thích chi tiết về khoa học máy tính làm cơ sở cho các biểu thức chính quy [máy tự động hữu hạn xác định và không xác định], bạn có thể tham khảo hầu hết mọi sách giáo khoa về viết trình biên dịch

Nhân vật phù hợp¶

Hầu hết các chữ cái và ký tự sẽ tự khớp với nhau. Ví dụ: biểu thức chính quy

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
27 sẽ khớp chính xác với chuỗi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
27. [Bạn có thể bật chế độ không phân biệt chữ hoa chữ thường để RE này khớp với cả
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
29 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
70; thông tin thêm về điều này sau. ]

Có những ngoại lệ đối với quy tắc này; . Thay vào đó, chúng báo hiệu rằng một số điều khác thường nên được khớp hoặc chúng ảnh hưởng đến các phần khác của RE bằng cách lặp lại chúng hoặc thay đổi ý nghĩa của chúng. Phần lớn tài liệu này được dành để thảo luận về các siêu ký tự khác nhau và chức năng của chúng.

Đây là danh sách đầy đủ các siêu ký tự;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
8

Các siêu ký tự đầu tiên chúng ta sẽ xem xét là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
71 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
72. Chúng được sử dụng để chỉ định một lớp ký tự, là một tập hợp các ký tự mà bạn muốn so khớp. Các ký tự có thể được liệt kê riêng lẻ hoặc một dãy ký tự có thể được chỉ định bằng cách đưa ra hai ký tự và phân tách chúng bằng dấu ____273. Ví dụ:
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
74 sẽ khớp với bất kỳ ký tự nào trong số các ký tự
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
75,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
76 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
77; . Nếu bạn chỉ muốn khớp các chữ cái viết thường, RE của bạn sẽ là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
79

Siêu ký tự [ngoại trừ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
80] không hoạt động bên trong các lớp. Ví dụ:
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
81 sẽ khớp với bất kỳ ký tự nào trong số các ký tự
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
83,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
84 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85;

Bạn có thể khớp các ký tự không được liệt kê trong lớp bằng cách bổ sung bộ. Điều này được biểu thị bằng cách bao gồm một

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87 là ký tự đầu tiên của lớp. Ví dụ:
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
88 sẽ khớp với bất kỳ ký tự nào ngoại trừ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89. Nếu dấu mũ xuất hiện ở nơi khác trong một lớp ký tự, nó không có ý nghĩa đặc biệt. Ví dụ.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
80 sẽ khớp với một trong hai
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 hoặc một
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87

Có lẽ siêu ký tự quan trọng nhất là dấu gạch chéo ngược,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
80. Như trong chuỗi ký tự Python, dấu gạch chéo ngược có thể được theo sau bởi các ký tự khác nhau để báo hiệu các chuỗi đặc biệt khác nhau. Nó cũng được sử dụng để thoát khỏi tất cả các siêu ký tự để bạn vẫn có thể khớp chúng theo mẫu; .
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
86 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87

Một số chuỗi đặc biệt bắt đầu bằng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
88 đại diện cho các bộ ký tự được xác định trước thường hữu ích, chẳng hạn như tập hợp các chữ số, tập hợp các chữ cái hoặc tập hợp bất kỳ thứ gì không phải là khoảng trắng

Hãy lấy một ví dụ.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 khớp với bất kỳ ký tự chữ và số nào. Nếu mẫu biểu thức chính quy được biểu thị bằng byte, thì điều này tương đương với lớp
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
80. Nếu mẫu biểu thức chính quy là một chuỗi, thì
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 sẽ khớp với tất cả các ký tự được đánh dấu là chữ cái trong cơ sở dữ liệu Unicode do mô-đun
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82 cung cấp. Bạn có thể sử dụng định nghĩa hạn chế hơn của
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 trong mẫu chuỗi bằng cách cung cấp cờ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
84 khi biên dịch biểu thức chính quy

Danh sách trình tự đặc biệt sau đây chưa đầy đủ. Để biết danh sách đầy đủ các chuỗi và định nghĩa lớp mở rộng cho các mẫu chuỗi Unicode, hãy xem phần cuối của Cú pháp biểu thức chính quy trong tài liệu tham khảo Thư viện chuẩn. Nói chung, các phiên bản Unicode khớp với bất kỳ ký tự nào trong danh mục phù hợp trong cơ sở dữ liệu Unicode.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85

Khớp với bất kỳ chữ số thập phân nào;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87

Khớp với bất kỳ ký tự không phải chữ số nào;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89

Khớp với bất kỳ ký tự khoảng trắng nào;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
81

Khớp với bất kỳ ký tự không phải khoảng trắng nào;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89

Khớp với bất kỳ ký tự chữ và số nào;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85

Khớp với bất kỳ ký tự không phải chữ và số nào;

Các chuỗi này có thể được đưa vào bên trong một lớp ký tự. Ví dụ:

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87 là một lớp ký tự sẽ khớp với bất kỳ ký tự khoảng trắng nào hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
88 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89

Siêu ký tự cuối cùng trong phần này là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
800. Nó khớp với mọi thứ ngoại trừ một ký tự xuống dòng và có một chế độ thay thế [
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
801] trong đó nó sẽ khớp với cả một dòng mới.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
800 thường được sử dụng khi bạn muốn khớp “bất kỳ ký tự nào”

Những điều lặp đi lặp lại¶

Khả năng khớp các bộ ký tự khác nhau là điều đầu tiên mà các biểu thức chính quy có thể thực hiện, điều chưa thể thực hiện được với các phương thức có sẵn trên chuỗi. Tuy nhiên, nếu đó là khả năng bổ sung duy nhất của biểu thức chính quy, thì chúng sẽ không có nhiều tiến bộ. Một khả năng khác là bạn có thể chỉ định rằng các phần của RE phải được lặp lại một số lần nhất định

Siêu ký tự đầu tiên để lặp lại những thứ mà chúng ta sẽ xem xét là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
803.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
803 không khớp với ký tự chữ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
805;

Ví dụ:

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
806 sẽ khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
807 [0
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82 ký tự],
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
809 [1
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82],
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
811 [3
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82 ký tự], v.v.

Sự lặp lại như

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
803 là tham lam; . Nếu các phần sau của mẫu không khớp, thì công cụ khớp sẽ sao lưu và thử lại với ít lần lặp lại hơn

Một ví dụ từng bước sẽ làm cho điều này rõ ràng hơn. Hãy xem xét biểu thức

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
814. Điều này phù hợp với chữ cái
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82, không có hoặc nhiều chữ cái từ lớp
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
816 và cuối cùng kết thúc bằng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
817. Bây giờ hãy tưởng tượng khớp RE này với chuỗi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
818

Bước chân

phù hợp

Giải trình

1

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
75

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
75 trong các trận đấu RE

2

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
821

Động cơ khớp với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
822, đi xa nhất có thể, đến cuối chuỗi

3

Thất bại

Công cụ cố khớp với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
76, nhưng vị trí hiện tại ở cuối chuỗi nên không thành công

4

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
824

Sao lưu, để

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
822 khớp với một ký tự ít hơn

5

Thất bại

Hãy thử lại

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
76, nhưng vị trí hiện tại ở ký tự cuối cùng, đó là một
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
827

6

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
828

Sao lưu lại để

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
822 chỉ khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
830

6

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
824

Thử lại

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
76. Lần này ký tự ở vị trí hiện tại là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
817, vậy là thành công

RE hiện đã kết thúc và nó đã khớp với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
834. Điều này cho thấy công cụ so khớp đi xa nhất có thể lúc đầu và nếu không tìm thấy kết quả phù hợp thì nó sẽ sao lưu dần dần và thử lại phần còn lại của RE nhiều lần. Nó sẽ sao lưu cho đến khi thử không khớp cho ________ 7822 và nếu sau đó không thành công, công cụ sẽ kết luận rằng chuỗi hoàn toàn không khớp với RE

Một siêu ký tự lặp lại khác là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
836, khớp với một hoặc nhiều lần. Hãy chú ý cẩn thận đến sự khác biệt giữa
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
803 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
836; . Để sử dụng một ví dụ tương tự,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
841 sẽ khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
809 [1
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82],
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
811 [3
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82], nhưng sẽ không khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
807

Có thêm hai toán tử hoặc bộ định lượng lặp lại. Ký tự dấu chấm hỏi,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
847, khớp một lần hoặc không lần; . Ví dụ:
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
848 khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
849 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
850

Bộ định lượng phức tạp nhất là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
851, trong đó m và n là số nguyên thập phân. Định lượng này có nghĩa là phải có ít nhất m lần lặp lại và nhiều nhất n. Ví dụ:
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
852 sẽ khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
853,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
854 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
855. Nó sẽ không khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
856, không có dấu gạch chéo hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
857, có bốn dấu gạch chéo

Bạn có thể bỏ qua m hoặc n; . Bỏ qua m được hiểu là giới hạn dưới của 0, trong khi bỏ qua n dẫn đến giới hạn trên là vô cùng

Độc giả của một người theo chủ nghĩa giản lược có thể nhận thấy rằng ba lượng từ khác đều có thể được biểu thị bằng cách sử dụng ký hiệu này.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
858 tương đương với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
803,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
860 tương đương với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
836 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
862 tương đương với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
847. Tốt hơn là sử dụng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
803,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
836 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
847 khi bạn có thể, đơn giản vì chúng ngắn hơn và dễ đọc hơn

Sử dụng Biểu thức Chính quy¶

Bây giờ chúng ta đã xem xét một số biểu thức chính quy đơn giản, làm thế nào để chúng ta thực sự sử dụng chúng trong Python?

Biên dịch biểu thức chính quy¶

Các biểu thức chính quy được biên dịch thành các đối tượng mẫu, có các phương thức cho các hoạt động khác nhau, chẳng hạn như tìm kiếm các kết quả khớp mẫu hoặc thực hiện thay thế chuỗi

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
8

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
868 cũng chấp nhận một đối số cờ tùy chọn, được sử dụng để kích hoạt nhiều tính năng đặc biệt và các biến thể cú pháp. Chúng tôi sẽ xem xét các cài đặt có sẵn sau, nhưng bây giờ, một ví dụ duy nhất sẽ làm được

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
48

RE được chuyển đến

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
868 dưới dạng một chuỗi. RE được xử lý dưới dạng chuỗi vì biểu thức chính quy không phải là một phần của ngôn ngữ Python cốt lõi và không có cú pháp đặc biệt nào được tạo để diễn đạt chúng. [Có những ứng dụng hoàn toàn không cần RE, vì vậy không cần phải làm phồng đặc tả ngôn ngữ bằng cách đưa chúng vào. ] Thay vào đó, mô-đun
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25 chỉ đơn giản là mô-đun mở rộng C có trong Python, giống như mô-đun
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
871 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
872

Đặt RE trong chuỗi giữ cho ngôn ngữ Python đơn giản hơn, nhưng có một nhược điểm là chủ đề của phần tiếp theo

Bệnh dịch hạch ngược¶

Như đã nêu trước đó, biểu thức chính quy sử dụng ký tự gạch chéo ngược [______488] để biểu thị các dạng đặc biệt hoặc để cho phép sử dụng các ký tự đặc biệt mà không cần gọi ý nghĩa đặc biệt của chúng. Điều này mâu thuẫn với việc Python sử dụng cùng một ký tự cho cùng một mục đích trong chuỗi ký tự

Giả sử bạn muốn viết RE khớp với chuỗi

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
874, chuỗi này có thể tìm thấy trong tệp LaTeX. Để tìm ra những gì cần viết trong mã chương trình, hãy bắt đầu với chuỗi mong muốn được khớp. Tiếp theo, bạn phải thoát khỏi mọi dấu gạch chéo ngược và các ký tự meta khác bằng cách đặt trước chúng bằng dấu gạch chéo ngược, dẫn đến chuỗi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
875. Chuỗi kết quả phải được chuyển đến
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
868 phải là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
875. Tuy nhiên, để thể hiện điều này dưới dạng chuỗi ký tự Python, cả hai dấu gạch chéo ngược phải được thoát lại

Nhân vật

Sân khấu

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
874

Chuỗi văn bản cần khớp

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
875

Dấu gạch chéo ngược thoát cho

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
868

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
881

Dấu gạch chéo ngược đã thoát cho một chuỗi ký tự

Nói tóm lại, để khớp với dấu gạch chéo ngược theo nghĩa đen, người ta phải viết

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
882 dưới dạng chuỗi RE, vì biểu thức chính quy phải là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87 và mỗi dấu gạch chéo ngược phải được biểu thị là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87 bên trong một chuỗi ký tự Python thông thường. Trong các RE có dấu gạch chéo ngược lặp đi lặp lại, điều này dẫn đến nhiều dấu gạch chéo ngược lặp lại và làm cho các chuỗi kết quả trở nên khó hiểu

Giải pháp là sử dụng ký hiệu chuỗi thô của Python cho các biểu thức chính quy; . Biểu thức chính quy thường sẽ được viết bằng mã Python sử dụng ký hiệu chuỗi thô này

Ngoài ra, các chuỗi thoát đặc biệt hợp lệ trong các biểu thức chính quy, nhưng không hợp lệ dưới dạng chuỗi ký tự Python, hiện dẫn đến một

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
890 và cuối cùng sẽ trở thành một
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
891, có nghĩa là các chuỗi sẽ không hợp lệ nếu ký hiệu chuỗi thô hoặc thoát khỏi dấu gạch chéo ngược '

Chuỗi thông thường

chuỗi thô

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
892

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
893

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
881

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
895

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
896

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
897

Thi đấu¶

Khi bạn có một đối tượng đại diện cho một biểu thức chính quy được biên dịch, bạn sẽ làm gì với nó? . Chỉ những điều quan trọng nhất sẽ được đề cập ở đây;

Phương thức/Thuộc tính

Mục đích

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
899

Xác định xem RE có khớp ở đầu chuỗi không

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4800

Quét qua một chuỗi, tìm kiếm bất kỳ vị trí nào mà RE này khớp

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4801

Tìm tất cả các chuỗi con nơi RE khớp và trả về chúng dưới dạng danh sách

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4802

Tìm tất cả các chuỗi con mà RE khớp và trả về chúng dưới dạng trình lặp .

______7899 và

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4800 trả về
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4805 nếu không tìm thấy kết quả khớp. Nếu chúng thành công, một phiên bản đối tượng khớp được trả về, chứa thông tin về sự trùng khớp. nơi nó bắt đầu và kết thúc, chuỗi con mà nó khớp, v.v.

Bạn có thể tìm hiểu về điều này bằng cách thử nghiệm tương tác với mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25. Nếu bạn có sẵn
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4807, bạn cũng có thể muốn xem Tools/demo/redemo. py, một chương trình trình diễn đi kèm với bản phân phối Python. Nó cho phép bạn nhập RE và chuỗi, đồng thời hiển thị RE khớp hay không.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4808 có thể khá hữu ích khi cố gắng gỡ lỗi RE phức tạp

HOWTO này sử dụng trình thông dịch Python chuẩn cho các ví dụ của nó. Đầu tiên, hãy chạy trình thông dịch Python, nhập mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25 và biên dịch RE

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
90

Bây giờ, bạn có thể thử khớp các chuỗi khác nhau với RE

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4810. Một chuỗi trống hoàn toàn không được khớp, vì
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
836 có nghĩa là 'một hoặc nhiều lần lặp lại'.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
899 sẽ trả về
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4805 trong trường hợp này, điều này sẽ khiến trình thông dịch không in ra. Bạn có thể in rõ ràng kết quả của
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
899 để làm rõ điều này

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
2

Bây giờ, hãy thử với một chuỗi phù hợp, chẳng hạn như

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4815. Trong trường hợp này,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
899 sẽ trả về một đối tượng khớp , vì vậy bạn nên lưu kết quả vào một biến để sử dụng sau này.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
7

Bây giờ bạn có thể truy vấn đối tượng khớp để biết thông tin về chuỗi khớp. Các thể hiện đối tượng khớp cũng có một số phương thức và thuộc tính; .

Phương thức/Thuộc tính

Mục đích

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4817

Trả về chuỗi khớp với RE

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4818

Trả lại vị trí bắt đầu của trận đấu

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4819

Trả lại vị trí kết thúc trận đấu

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4820

Trả về một bộ chứa các vị trí [bắt đầu, kết thúc] của trận đấu

Thử các phương pháp này sẽ sớm làm rõ ý nghĩa của chúng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
8

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4817 trả về chuỗi con khớp với RE.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4818 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4819 trả về chỉ số bắt đầu và kết thúc của trận đấu.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4820 trả về cả chỉ mục bắt đầu và kết thúc trong một bộ dữ liệu. Vì phương thức
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
899 chỉ kiểm tra xem RE có khớp ở đầu chuỗi hay không, nên
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4818 sẽ luôn bằng 0. Tuy nhiên, phương thức
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4800 của các mẫu quét qua chuỗi, do đó, trận đấu có thể không bắt đầu từ 0 trong trường hợp đó

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
8

Trong các chương trình thực tế, phong cách phổ biến nhất là lưu trữ đối tượng khớp trong một biến, sau đó kiểm tra xem đó có phải là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4805. Điều này thường trông giống như.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
8

Hai phương thức mẫu trả về tất cả các kết quả phù hợp cho một mẫu.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4801 trả về danh sách các chuỗi phù hợp

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
8

Tiền tố

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4830, làm cho ký tự này trở thành ký tự chuỗi thô, là cần thiết trong ví dụ này vì các chuỗi thoát trong một ký tự chuỗi "nấu chín" thông thường không được Python nhận ra, trái ngược với các biểu thức thông thường, giờ dẫn đến một . Xem Bệnh dịch hạch ngược .

____14801 phải tạo toàn bộ danh sách trước khi có thể trả về kết quả. Phương thức

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4802 trả về một chuỗi các phiên bản match object dưới dạng iterator .

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
80

Chức năng cấp mô-đun¶

Bạn không cần phải tạo một đối tượng mẫu và gọi các phương thức của nó; . Các hàm này nhận các đối số giống như phương thức mẫu tương ứng với chuỗi RE được thêm làm đối số đầu tiên và vẫn trả về phiên bản

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4805 hoặc match object .

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
81

Về cơ bản, các chức năng này chỉ đơn giản là tạo một đối tượng mẫu cho bạn và gọi phương thức thích hợp trên đó. Chúng cũng lưu trữ đối tượng đã biên dịch trong bộ đệm, vì vậy các cuộc gọi trong tương lai sử dụng cùng một RE sẽ không cần phải phân tích cú pháp mẫu nhiều lần

Bạn có nên sử dụng các hàm cấp mô-đun này hay bạn nên lấy mẫu và tự gọi các phương thức của nó? . Bên ngoài các vòng lặp, không có nhiều khác biệt nhờ bộ đệm bên trong

Cờ tổng hợp¶

Cờ biên dịch cho phép bạn sửa đổi một số khía cạnh về cách hoạt động của biểu thức chính quy. Các cờ có sẵn trong mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25 dưới hai tên, một tên dài chẳng hạn như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4842 và một dạng ngắn, một chữ cái chẳng hạn như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4843. [Nếu bạn đã quen thuộc với các công cụ sửa đổi mẫu của Perl, thì các dạng một chữ cái sẽ sử dụng các chữ cái giống nhau; dạng viết tắt của
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4844 là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4845 chẳng hạn. ] Nhiều cờ có thể được chỉ định bằng bit OR-ing chúng;

Đây là bảng các cờ có sẵn, theo sau là giải thích chi tiết hơn về từng cờ

Lá cờ

Nghĩa

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4849,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4850

Làm cho một số lần thoát như

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85 chỉ khớp với các ký tự ASCII với thuộc tính tương ứng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4855,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4856

Làm cho

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
800 khớp với bất kỳ ký tự nào, bao gồm cả dòng mới

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4842,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4843

Thực hiện so khớp không phân biệt chữ hoa chữ thường

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4860,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4861

Thực hiện đối sánh nhận biết ngôn ngữ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4862,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4848

Kết hợp nhiều dòng, ảnh hưởng đến

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4864 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4865

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4866,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4867 [đối với 'mở rộng']

Kích hoạt RE dài dòng, có thể được tổ chức rõ ràng và dễ hiểu hơn

TôiBỎ QUA TRƯỜNG HỢP

Thực hiện khớp không phân biệt chữ hoa chữ thường; . Ví dụ:

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4868 cũng sẽ khớp với các chữ cái viết thường. Kết hợp Unicode đầy đủ cũng hoạt động trừ khi cờ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4849 được sử dụng để tắt kết quả khớp không phải ASCII. Khi các mẫu Unicode
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
79 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4868 được sử dụng kết hợp với cờ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4842, chúng sẽ khớp với 52 chữ cái ASCII và 4 chữ cái không phải ASCII bổ sung. 'İ' [U+0130, chữ cái Latinh viết hoa I có dấu chấm ở trên], 'ı' [U+0131, chữ cái nhỏ i không có dấu chấm trong tiếng Latinh], 'ſ' [U+017F, chữ cái nhỏ Latinh dài s] và 'K' .
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4873 sẽ khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4874,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4875,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4876 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4877 [cái sau chỉ khớp ở chế độ Unicode]. Chữ thường này không tính đến ngôn ngữ hiện tại;

LĐỊA ĐIỂM

Làm cho đối sánh

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4882 và phân biệt chữ hoa chữ thường phụ thuộc vào ngôn ngữ hiện tại thay vì cơ sở dữ liệu Unicode

Ngôn ngữ là một tính năng của thư viện C nhằm giúp viết các chương trình có tính đến sự khác biệt về ngôn ngữ. Ví dụ: nếu bạn đang xử lý văn bản tiếng Pháp được mã hóa, bạn muốn có thể viết

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4883 để khớp các từ, nhưng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 chỉ khớp với lớp ký tự
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4885 theo mẫu byte; . Nếu hệ thống của bạn được cấu hình đúng cách và ngôn ngữ tiếng Pháp được chọn, một số hàm C nhất định sẽ cho chương trình biết rằng byte tương ứng với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4886 cũng phải được coi là một chữ cái. Đặt cờ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4860 khi biên dịch biểu thức chính quy sẽ khiến đối tượng được biên dịch kết quả sử dụng các hàm C này cho
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89; . Việc sử dụng cờ này không được khuyến khích trong Python 3 vì cơ chế ngôn ngữ rất không đáng tin cậy, nó chỉ xử lý một "văn hóa" tại một thời điểm và nó chỉ hoạt động với ngôn ngữ 8 bit. Kết hợp Unicode đã được bật theo mặc định trong Python 3 cho các mẫu Unicode [str] và nó có thể xử lý các ngôn ngữ/địa phương khác nhau

MĐA DÒNG

[

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4864 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4865 vẫn chưa được giải thích; chúng sẽ được giới thiệu trong phần Các ký tự khác . ]

Thông thường,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4864 chỉ khớp ở đầu chuỗi và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4865 chỉ khớp ở cuối chuỗi và ngay trước dòng mới [nếu có] ở cuối chuỗi. Khi cờ này được chỉ định,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4864 khớp ở đầu chuỗi và ở đầu mỗi dòng trong chuỗi, ngay sau mỗi dòng mới. Tương tự, ký tự phụ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4865 khớp ở cuối chuỗi và ở cuối mỗi dòng [ngay trước mỗi dòng mới]

SDOTALL

Làm cho ký tự đặc biệt

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 khớp với bất kỳ ký tự nào, kể cả một dòng mới;

AASCII

Làm cho

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4882,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
81 thực hiện khớp chỉ ASCII thay vì khớp Unicode đầy đủ. Điều này chỉ có ý nghĩa đối với các mẫu Unicode và bị bỏ qua đối với các mẫu byte

XVERBOSE

Cờ này cho phép bạn viết các biểu thức chính quy dễ đọc hơn bằng cách cho phép bạn linh hoạt hơn trong cách định dạng chúng. Khi cờ này đã được chỉ định, khoảng trắng trong chuỗi RE sẽ bị bỏ qua, trừ khi khoảng trắng nằm trong một lớp ký tự hoặc trước dấu gạch chéo ngược không thoát; . Cờ này cũng cho phép bạn đặt nhận xét trong RE sẽ bị công cụ bỏ qua;

Ví dụ: đây là RE sử dụng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4844;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82

Nếu không có cài đặt dài dòng, RE sẽ trông như thế này

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
83

Trong ví dụ trên, phép nối chuỗi ký tự tự động của Python đã được sử dụng để chia RE thành các phần nhỏ hơn, nhưng nó vẫn khó hiểu hơn phiên bản sử dụng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4844

Công suất mẫu nhiều hơn¶

Cho đến nay, chúng tôi chỉ đề cập đến một phần các tính năng của biểu thức chính quy. Trong phần này, chúng ta sẽ đề cập đến một số siêu ký tự mới và cách sử dụng các nhóm để truy xuất các phần của văn bản đã khớp

Nhiều ký tự hơn¶

Có một số siêu ký tự mà chúng tôi chưa đề cập đến. Hầu hết trong số họ sẽ được đề cập trong phần này

Một số siêu ký tự còn lại sẽ được thảo luận là các xác nhận có độ rộng bằng 0. Chúng không làm cho động cơ chạy xuyên qua sợi dây; . Ví dụ:

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852 là một khẳng định rằng vị trí hiện tại nằm ở một ranh giới từ; . Điều này có nghĩa là các xác nhận có độ rộng bằng 0 không bao giờ được lặp lại, bởi vì nếu chúng khớp một lần tại một vị trí nhất định, thì rõ ràng chúng có thể được khớp vô số lần

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9011

Luân phiên, hoặc toán tử “hoặc”. Nếu A và B là biểu thức chính quy,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9012 sẽ khớp với bất kỳ chuỗi nào khớp với A hoặc B.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9011 có mức độ ưu tiên rất thấp để làm cho nó hoạt động hợp lý khi bạn đang xen kẽ các chuỗi nhiều ký tự.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9014 sẽ khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9015 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9016, không phải
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9017, một
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9018 hoặc một
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9019, và một
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9020

Để khớp với một

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9021 theo nghĩa đen, hãy sử dụng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9022 hoặc đặt nó bên trong một lớp ký tự, như trong
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9023

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4864

Khớp ở đầu dòng. Trừ khi cờ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4862 đã được đặt, cờ này sẽ chỉ khớp ở đầu chuỗi. Ở chế độ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4862, điều này cũng khớp ngay sau mỗi dòng mới trong chuỗi

Ví dụ: nếu bạn chỉ muốn khớp từ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9027 ở đầu dòng, RE sẽ sử dụng là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9028

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
84

Để khớp với một

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87 theo nghĩa đen, hãy sử dụng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9030

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4865

Khớp ở cuối dòng, được xác định là cuối chuỗi hoặc bất kỳ vị trí nào theo sau bởi ký tự xuống dòng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85

Để khớp với một

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
85 theo nghĩa đen, hãy sử dụng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9033 hoặc đặt nó bên trong một lớp ký tự, như trong
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9034

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9035

Chỉ khớp ở đầu chuỗi. Khi không ở chế độ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4862,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9035 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4864 thực sự giống nhau. Ở chế độ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4862, chúng khác nhau.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9035 vẫn chỉ khớp ở đầu chuỗi, nhưng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4864 có thể khớp ở bất kỳ vị trí nào bên trong chuỗi theo sau ký tự xuống dòng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9042

Chỉ khớp ở cuối chuỗi

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852

Ranh giới từ. Đây là xác nhận có độ rộng bằng 0 chỉ khớp ở đầu hoặc cuối từ. Một từ được định nghĩa là một chuỗi các ký tự chữ và số, do đó, phần cuối của từ được biểu thị bằng khoảng trắng hoặc ký tự không phải chữ và số

Ví dụ sau chỉ phù hợp với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9044 khi nó là một từ hoàn chỉnh;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
86

Có hai điều tinh tế bạn nên nhớ khi sử dụng trình tự đặc biệt này. Đầu tiên, đây là sự va chạm tồi tệ nhất giữa các chuỗi ký tự chuỗi của Python và các chuỗi biểu thức chính quy. Trong chuỗi ký tự của Python,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852 là ký tự xóa lùi, giá trị ASCII 8. Nếu bạn không sử dụng chuỗi thô, thì Python sẽ chuyển đổi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852 thành backspace và RE của bạn sẽ không khớp như bạn mong đợi. Ví dụ sau trông giống như RE trước của chúng tôi, nhưng bỏ qua
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
885 trước chuỗi RE

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
87

Thứ hai, bên trong một lớp ký tự, nơi không sử dụng khẳng định này,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852 đại diện cho ký tự xóa lùi, để tương thích với chuỗi ký tự của Python

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4882

Một xác nhận khác có độ rộng bằng 0, điều này ngược lại với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4852, chỉ khớp khi vị trí hiện tại không nằm ở ranh giới từ

Nhóm¶

Thông thường, bạn cần thu thập nhiều thông tin hơn là liệu RE có khớp hay không. Các biểu thức chính quy thường được sử dụng để phân tích các chuỗi bằng cách viết RE được chia thành nhiều nhóm con phù hợp với các thành phần quan tâm khác nhau. Ví dụ: dòng tiêu đề RFC-822 được chia thành tên tiêu đề và giá trị, được phân tách bằng dấu ____19051, như thế này

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
88

Điều này có thể được xử lý bằng cách viết một biểu thức chính quy khớp với toàn bộ dòng tiêu đề và có một nhóm khớp với tên tiêu đề và một nhóm khác khớp với giá trị của tiêu đề

Các nhóm được đánh dấu bằng ký tự phụ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9052,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9053.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9052 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9053 có nhiều ý nghĩa giống như trong các biểu thức toán học; . Ví dụ:
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9060 sẽ khớp với 0 hoặc nhiều lần lặp lại của
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9061

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
89

Các nhóm được biểu thị bằng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9052,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9053 cũng nắm bắt chỉ mục bắt đầu và kết thúc của văn bản mà chúng khớp; . Các nhóm được đánh số bắt đầu bằng 0. Nhóm 0 luôn có mặt; . Sau này chúng ta sẽ xem cách thể hiện các nhóm không nắm bắt được khoảng văn bản mà chúng khớp.
match object methods all have group 0 as their default argument. Later we’ll see how to express groups that don’t capture the span of text that they match.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
480

Các nhóm con được đánh số từ trái sang phải, từ 1 trở lên. Các nhóm có thể được lồng vào nhau;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
481

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4817 có thể được chuyển nhiều số nhóm cùng một lúc, trong trường hợp đó, nó sẽ trả về một bộ chứa các giá trị tương ứng cho các nhóm đó

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
482

Phương thức

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9069 trả về một bộ chứa các chuỗi cho tất cả các nhóm con, từ 1 cho đến bao nhiêu nhóm

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
483

Phản hồi ngược trong một mẫu cho phép bạn chỉ định rằng nội dung của nhóm chụp trước đó cũng phải được tìm thấy tại vị trí hiện tại trong chuỗi. Ví dụ:

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9070 sẽ thành công nếu có thể tìm thấy nội dung chính xác của nhóm 1 tại vị trí hiện tại và không thành công nếu không. Hãy nhớ rằng các chuỗi ký tự của Python cũng sử dụng dấu gạch chéo ngược theo sau là các số để cho phép bao gồm các ký tự tùy ý trong một chuỗi, vì vậy hãy đảm bảo sử dụng chuỗi thô khi kết hợp các tham chiếu ngược trong RE

Ví dụ: RE sau phát hiện các từ được nhân đôi trong một chuỗi

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
484

Các tham chiếu ngược như thế này thường không hữu ích khi chỉ tìm kiếm qua một chuỗi — có một số định dạng văn bản lặp lại dữ liệu theo cách này — nhưng bạn sẽ sớm phát hiện ra rằng chúng rất hữu ích khi thực hiện thay thế chuỗi

Nhóm không bắt giữ và được đặt tên¶

Các RE phức tạp có thể sử dụng nhiều nhóm, vừa để nắm bắt các chuỗi con quan tâm, vừa để nhóm và cấu trúc chính RE. Trong các RE phức tạp, việc theo dõi số nhóm trở nên khó khăn. Có hai tính năng giúp giải quyết vấn đề này. Cả hai đều sử dụng một cú pháp chung cho các phần mở rộng biểu thức chính quy, vì vậy chúng tôi sẽ xem xét điều đó trước

Perl 5 nổi tiếng với những bổ sung mạnh mẽ cho các biểu thức chính quy tiêu chuẩn. Đối với các tính năng mới này, các nhà phát triển Perl không thể chọn các siêu ký tự một lần nhấn phím mới hoặc các chuỗi đặc biệt mới bắt đầu bằng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
80 mà không làm cho các biểu thức chính quy của Perl khác biệt một cách khó hiểu so với các RE tiêu chuẩn. Ví dụ, nếu họ chọn
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9072 làm một siêu ký tự mới, thì các biểu thức cũ sẽ cho rằng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9072 là một ký tự thông thường và sẽ không thoát khỏi ký tự đó bằng cách viết
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9074 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9075

Giải pháp được các nhà phát triển Perl chọn là sử dụng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9076 làm cú pháp mở rộng.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
847 ngay sau dấu ngoặc đơn là một lỗi cú pháp vì
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
847 sẽ không có gì để lặp lại, vì vậy điều này không gây ra bất kỳ vấn đề tương thích nào. Các ký tự ngay sau
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
847 cho biết tiện ích mở rộng nào đang được sử dụng, do đó,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9080 là một thứ [khẳng định nhìn trước tích cực] và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9081 là một thứ khác [một nhóm không nắm bắt có chứa biểu thức con
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9082]

Python hỗ trợ một số tiện ích mở rộng của Perl và thêm cú pháp mở rộng vào cú pháp mở rộng của Perl. Nếu ký tự đầu tiên sau dấu chấm hỏi là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9083, bạn biết rằng đó là một tiện ích mở rộng dành riêng cho Python

Bây giờ chúng ta đã xem xét cú pháp tiện ích mở rộng chung, chúng ta có thể quay lại các tính năng giúp đơn giản hóa việc làm việc với các nhóm trong các RE phức tạp

Đôi khi, bạn sẽ muốn sử dụng một nhóm để biểu thị một phần của biểu thức chính quy, nhưng không quan tâm đến việc truy xuất nội dung của nhóm. Bạn có thể làm cho thực tế này trở nên rõ ràng bằng cách sử dụng một nhóm không bắt giữ.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9084, nơi bạn có thể thay thế
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9085 bằng bất kỳ biểu thức chính quy nào khác

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
485

Ngoại trừ thực tế là bạn không thể truy xuất nội dung của những gì nhóm đã khớp, một nhóm không bắt giữ hoạt động giống hệt như một nhóm bắt giữ; .

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9084 đặc biệt hữu ích khi sửa đổi một mẫu hiện có, vì bạn có thể thêm các nhóm mới mà không thay đổi cách đánh số tất cả các nhóm khác. Cần lưu ý rằng không có sự khác biệt về hiệu suất trong việc tìm kiếm giữa các nhóm chụp và không chụp;

Một tính năng quan trọng hơn được đặt tên theo nhóm. thay vì gọi chúng bằng số, các nhóm có thể được gọi bằng tên

Cú pháp cho nhóm được đặt tên là một trong những phần mở rộng dành riêng cho Python.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9088. rõ ràng là tên của nhóm. Các nhóm được đặt tên hoạt động giống hệt như các nhóm bắt giữ và ngoài ra còn liên kết tên với một nhóm. Tất cả các phương thức match object xử lý việc bắt nhóm đều chấp nhận số nguyên tham chiếu đến nhóm theo số hoặc chuỗi chứa tên của nhóm mong muốn. Các nhóm được đặt tên vẫn được cung cấp số, vì vậy bạn có thể truy xuất thông tin về một nhóm theo hai cách.

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
486

Ngoài ra, bạn có thể truy xuất các nhóm được đặt tên dưới dạng từ điển với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9089

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
487

Các nhóm được đặt tên rất tiện dụng vì chúng cho phép bạn sử dụng các tên dễ nhớ thay vì phải nhớ các con số. Đây là một ví dụ RE từ mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9090

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
488

Rõ ràng việc truy xuất

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9091 dễ dàng hơn nhiều, thay vì phải nhớ truy xuất nhóm 9

Cú pháp cho phản hồi trong một biểu thức chẳng hạn như

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9092 đề cập đến số của nhóm. Đương nhiên có một biến thể sử dụng tên nhóm thay vì số. Đây là một phần mở rộng khác của Python.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9093 chỉ ra rằng nội dung của nhóm được gọi là tên sẽ được khớp lại tại điểm hiện tại. Biểu thức chính quy để tìm các từ được nhân đôi,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9094 cũng có thể được viết là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9095

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
489

Xác nhận nhìn trước¶

Một xác nhận độ rộng bằng 0 khác là xác nhận nhìn trước. Các xác nhận nhìn về phía trước có sẵn ở cả dạng tích cực và tiêu cực và trông như thế này

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9096

Khẳng định về cái nhìn tích cực. Điều này thành công nếu biểu thức chính quy được chứa, được đại diện ở đây bởi

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9085, khớp thành công tại vị trí hiện tại và không thành công nếu không. Tuy nhiên, một khi biểu thức chứa trong đó đã được thử, công cụ so khớp hoàn toàn không tiến lên;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9098

Khẳng định nhìn trước tiêu cực. Điều này trái ngược với khẳng định tích cực;

Để làm cho điều này trở nên cụ thể, hãy xem xét một trường hợp mà một cái nhìn về phía trước là hữu ích. Xem xét một mẫu đơn giản để khớp với tên tệp và tách nó thành tên cơ sở và phần mở rộng, được phân tách bằng dấu ____7800. Ví dụ: trong

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
200,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
201 là tên cơ sở và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
202 là phần mở rộng của tên tệp

Mẫu để phù hợp với điều này là khá đơn giản

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
203

Lưu ý rằng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
800 cần được xử lý đặc biệt vì nó là một siêu ký tự, do đó, nó nằm trong một lớp ký tự để chỉ khớp với ký tự cụ thể đó. Cũng lưu ý dấu sau
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4865; . Cụm từ thông dụng này khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
206 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
207 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
208 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
209

Bây giờ, hãy xem xét làm phức tạp vấn đề một chút;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
211 Lần thử đầu tiên ở trên cố gắng loại trừ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
210 bằng cách yêu cầu ký tự đầu tiên của phần mở rộng không phải là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
76. Điều này sai, vì mẫu cũng không khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
206

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
215

Biểu thức trở nên lộn xộn hơn khi bạn cố gắng khắc phục giải pháp đầu tiên bằng cách yêu cầu một trong các trường hợp sau khớp với nhau. ký tự đầu tiên của phần mở rộng không phải là

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
76; . Điều này chấp nhận
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
206 và từ chối
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
207, nhưng nó yêu cầu phần mở rộng gồm ba chữ cái và không chấp nhận tên tệp có phần mở rộng gồm hai chữ cái, chẳng hạn như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
208. Chúng tôi sẽ phức tạp hóa mô hình một lần nữa trong nỗ lực khắc phục nó

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
222

Trong lần thử thứ ba, tất cả các chữ cái thứ hai và thứ ba đều là tùy chọn để cho phép các phần mở rộng phù hợp ngắn hơn ba ký tự, chẳng hạn như

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
208

Hiện tại, mô hình đang trở nên thực sự phức tạp, khiến cho việc đọc và hiểu trở nên khó khăn. Tồi tệ hơn, nếu vấn đề thay đổi và bạn muốn loại trừ cả

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
210 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
225 dưới dạng tiện ích mở rộng, mẫu sẽ càng trở nên phức tạp và khó hiểu hơn

Một cái nhìn tiêu cực cắt đứt tất cả sự nhầm lẫn này

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
226 Cái nhìn tiêu cực có nghĩa là. nếu biểu thức
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
210 không khớp vào thời điểm này, hãy thử phần còn lại của mẫu; . Dấu đuôi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4865 là bắt buộc để đảm bảo rằng những thứ như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
230, trong đó phần mở rộng chỉ bắt đầu bằng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
210, sẽ được cho phép.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
232 đảm bảo rằng mẫu hoạt động khi có nhiều dấu chấm trong tên tệp

Giờ đây, việc loại trừ một phần mở rộng tên tệp khác trở nên dễ dàng; . Mẫu sau không bao gồm tên tệp kết thúc bằng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
210 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
225

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
235

Sửa đổi chuỗi¶

Cho đến thời điểm này, chúng tôi chỉ đơn giản thực hiện các tìm kiếm đối với một chuỗi tĩnh. Biểu thức chính quy cũng thường được sử dụng để sửa đổi chuỗi theo nhiều cách khác nhau, sử dụng các phương thức mẫu sau

Phương thức/Thuộc tính

Mục đích

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
236

Tách chuỗi thành một danh sách, tách nó ở bất cứ đâu RE khớp

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4839

Tìm tất cả các chuỗi con nơi RE khớp và thay thế chúng bằng một chuỗi khác

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
238

Thực hiện tương tự như

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4839, nhưng trả về chuỗi mới và số lần thay thế

Tách chuỗi¶

Phương thức

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
236 của một mẫu tách một chuỗi ra bất cứ nơi nào RE khớp, trả về một danh sách các phần. Nó tương tự như phương pháp chuỗi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
236 nhưng cung cấp tính tổng quát hơn nhiều trong các dấu phân cách mà bạn có thể phân chia theo; . Như bạn mong đợi, cũng có một chức năng cấp mô-đun
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
243

.tách[chuỗi[ , maxsplit=0]]

Tách chuỗi bằng các kết quả khớp của biểu thức chính quy. Nếu chụp dấu ngoặc đơn được sử dụng trong RE, thì nội dung của chúng cũng sẽ được trả về như một phần của danh sách kết quả. Nếu maxsplit khác không, thì tối đa các lần tách maxsplit được thực hiện

Bạn có thể giới hạn số lần phân tách được thực hiện bằng cách chuyển một giá trị cho maxsplit. Khi maxsplit khác không, tối đa các lần tách maxsplit sẽ được thực hiện và phần còn lại của chuỗi được trả về dưới dạng phần tử cuối cùng của danh sách. Trong ví dụ sau, dấu phân cách là bất kỳ chuỗi ký tự không phải chữ và số nào

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
900

Đôi khi bạn không chỉ quan tâm đến văn bản giữa các dấu phân cách là gì mà còn cần biết dấu phân cách là gì. Nếu chụp dấu ngoặc đơn được sử dụng trong RE, thì giá trị của chúng cũng được trả về như một phần của danh sách. So sánh các cuộc gọi sau

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
901

Hàm cấp mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
243 thêm RE được sử dụng làm đối số đầu tiên, nhưng nếu không thì giống nhau

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
902

Tìm kiếm và Thay thế¶

Một nhiệm vụ phổ biến khác là tìm tất cả các kết quả khớp cho một mẫu và thay thế chúng bằng một chuỗi khác. Phương thức

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4839 nhận một giá trị thay thế, có thể là một chuỗi hoặc một hàm và chuỗi cần xử lý

.sub[chuỗi thay thế , string[, count=0]]

Trả về chuỗi thu được bằng cách thay thế các lần xuất hiện không chồng chéo ngoài cùng bên trái của chuỗi RE trong chuỗi bằng phép thay thế thay thế. Nếu không tìm thấy mẫu, chuỗi được trả về không thay đổi

Số lượng đối số tùy chọn là số lần xuất hiện mẫu tối đa được thay thế; . Giá trị mặc định là 0 có nghĩa là thay thế tất cả các lần xuất hiện

Đây là một ví dụ đơn giản về việc sử dụng phương pháp

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4839. Nó thay thế tên màu bằng từ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
247

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
903

Phương thức

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
238 thực hiện công việc tương tự, nhưng trả về 2-tuple chứa giá trị chuỗi mới và số lần thay thế đã được thực hiện

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
904

Các trận đấu trống chỉ được thay thế khi chúng không liền kề với trận đấu trống trước đó

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
905

Nếu thay thế là một chuỗi, bất kỳ dấu gạch chéo ngược nào thoát khỏi nó đều được xử lý. Nghĩa là,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
249 được chuyển đổi thành một ký tự xuống dòng,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
250 được chuyển đổi thành ký tự xuống dòng, v.v. Các lối thoát không xác định như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9074 bị bỏ lại một mình. Các tham chiếu ngược, chẳng hạn như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
252, được thay thế bằng chuỗi con khớp với nhóm tương ứng trong RE. Điều này cho phép bạn kết hợp các phần của văn bản gốc trong chuỗi thay thế kết quả

Ví dụ này khớp với từ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
253 theo sau là một chuỗi có trong
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
254,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
255 và thay đổi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
253 thành
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
257

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
906

Ngoài ra còn có một cú pháp để đề cập đến các nhóm được đặt tên như được xác định bởi cú pháp

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
9088.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
259 sẽ sử dụng chuỗi con khớp với nhóm có tên
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
260 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
261 sử dụng số nhóm tương ứng. Do đó,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
262 tương đương với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
263, nhưng không mơ hồ trong một chuỗi thay thế, chẳng hạn như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
264. [
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
265 sẽ được hiểu là tham chiếu đến nhóm 20, không phải tham chiếu đến nhóm 2 theo sau là ký tự chữ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
266. ] Các thay thế sau đều tương đương, nhưng sử dụng cả ba biến thể của chuỗi thay thế

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
907

thay thế cũng có thể là một chức năng, cho phép bạn kiểm soát nhiều hơn. Nếu sự thay thế là một hàm, thì hàm này được gọi cho mọi lần xuất hiện mẫu không chồng chéo. Trên mỗi lệnh gọi, hàm được truyền một đối số match object để khớp và có thể sử dụng thông tin này để tính toán chuỗi thay thế mong muốn và trả về chuỗi đó.

Trong ví dụ sau, hàm thay thế dịch số thập phân thành thập lục phân

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
908

Khi sử dụng hàm

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
267 cấp mô-đun, mẫu được chuyển làm đối số đầu tiên. Mẫu có thể được cung cấp dưới dạng đối tượng hoặc dưới dạng chuỗi; . g.
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
268 trả về
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
269

Những vấn đề chung¶

Biểu thức chính quy là một công cụ mạnh mẽ cho một số ứng dụng, nhưng theo một số cách, hành vi của chúng không trực quan và đôi khi chúng không hành xử theo cách mà bạn có thể mong đợi. Phần này sẽ chỉ ra một số cạm bẫy phổ biến nhất

Sử dụng các phương thức chuỗi¶

Đôi khi sử dụng mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25 là một sai lầm. Nếu bạn đang so khớp một chuỗi cố định hoặc một lớp ký tự đơn lẻ và bạn không sử dụng bất kỳ tính năng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25 nào chẳng hạn như cờ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4842, thì có thể không cần đến toàn bộ sức mạnh của biểu thức chính quy. Các chuỗi có một số phương thức để thực hiện các thao tác với các chuỗi cố định và chúng thường nhanh hơn nhiều, bởi vì việc triển khai là một vòng lặp C nhỏ duy nhất được tối ưu hóa cho mục đích, thay vì công cụ biểu thức chính quy lớn, tổng quát hơn

Một ví dụ có thể là thay thế một chuỗi cố định bằng một chuỗi khác; .

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
267 có vẻ như là chức năng được sử dụng cho việc này, nhưng hãy xem xét phương pháp
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
276. Lưu ý rằng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
276 cũng sẽ thay thế các từ bên trong
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
273, biến
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
279 thành
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
280, nhưng RE
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
273 ngây thơ cũng sẽ làm điều đó. [Để tránh thực hiện thay thế trên các phần của từ, mẫu sẽ phải là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
282, để yêu cầu rằng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
273 có ranh giới từ ở hai bên. Điều này vượt quá khả năng của
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
276. ]

Một tác vụ phổ biến khác là xóa mọi lần xuất hiện của một ký tự đơn lẻ khỏi chuỗi hoặc thay thế nó bằng một ký tự đơn lẻ khác. Bạn có thể làm điều này với thứ gì đó như

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
285, nhưng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
286 có khả năng thực hiện cả hai tác vụ và sẽ nhanh hơn bất kỳ thao tác biểu thức chính quy nào có thể

Tóm lại, trước khi chuyển sang mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
25, hãy xem xét liệu vấn đề của bạn có thể được giải quyết bằng phương thức chuỗi nhanh hơn và đơn giản hơn không

trận đấu [] so với tìm kiếm []¶

Hàm

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
899 chỉ kiểm tra xem RE có khớp ở đầu chuỗi hay không trong khi
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4800 sẽ quét qua chuỗi để tìm khớp. Điều quan trọng là phải ghi nhớ sự khác biệt này. Hãy nhớ rằng,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
899 sẽ chỉ báo cáo một trận đấu thành công bắt đầu từ 0;

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
909

Mặt khác,

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4800 sẽ quét về phía trước qua chuỗi, báo cáo kết quả khớp đầu tiên mà nó tìm thấy

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
20

Đôi khi, bạn sẽ muốn tiếp tục sử dụng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
293 và chỉ cần thêm
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
294 vào trước RE của mình. Chống lại sự cám dỗ này và sử dụng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
295 để thay thế. Trình biên dịch biểu thức chính quy thực hiện một số phân tích về RE để tăng tốc quá trình tìm kiếm kết quả khớp. Một phân tích như vậy chỉ ra ký tự đầu tiên của một trận đấu phải là gì; . Phân tích cho phép công cụ nhanh chóng quét qua chuỗi để tìm ký tự bắt đầu, chỉ thử khớp hoàn toàn nếu tìm thấy
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
297

Việc thêm

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
294 sẽ làm mất khả năng tối ưu hóa này, yêu cầu quét đến cuối chuỗi rồi quay lại để tìm kết quả khớp cho phần còn lại của RE. Sử dụng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
295 để thay thế

Tham lam so với Không tham lam¶

Khi lặp lại một biểu thức chính quy, chẳng hạn như trong

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
701, hành động kết quả là sử dụng càng nhiều mẫu càng tốt. Thực tế này thường gây khó chịu cho bạn khi bạn đang cố khớp một cặp dấu phân cách cân bằng, chẳng hạn như dấu ngoặc nhọn bao quanh thẻ HTML. Mẫu ngây thơ để khớp một thẻ HTML không hoạt động do bản chất tham lam của
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
294

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
21

RE khớp với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
703 trong
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
704 và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
294 tiêu thụ phần còn lại của chuỗi. Tuy nhiên, vẫn còn nhiều hơn trong RE và
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
706 không thể khớp ở cuối chuỗi, vì vậy công cụ biểu thức chính quy phải truy ngược từng ký tự cho đến khi tìm thấy kết quả khớp cho
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
706. Trận đấu cuối cùng kéo dài từ
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
703 trong
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
704 đến
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
710 trong
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
711, đó không phải là điều bạn muốn

Trong trường hợp này, giải pháp là sử dụng các bộ định lượng không tham lam

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
712,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
713,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
714 hoặc
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
715, phù hợp với càng ít văn bản càng tốt. Trong ví dụ trên,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
710 được thử ngay sau khi khớp với
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
703 đầu tiên và khi nó không thành công, công cụ sẽ tiến lên một ký tự tại một thời điểm, thử lại
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
710 ở mỗi bước. Điều này tạo ra kết quả đúng

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
22

[Lưu ý rằng việc phân tích cú pháp HTML hoặc XML bằng các biểu thức chính quy rất khó khăn. Các mẫu nhanh và bẩn sẽ xử lý các trường hợp phổ biến, nhưng HTML và XML có các trường hợp đặc biệt sẽ phá vỡ biểu thức chính quy rõ ràng; . Sử dụng mô-đun trình phân tích cú pháp HTML hoặc XML cho các tác vụ đó. ]

Sử dụng lại. RÕ RÀNG¶

Đến bây giờ, có lẽ bạn đã nhận thấy rằng các biểu thức chính quy là một ký hiệu rất nhỏ gọn, nhưng chúng không dễ đọc lắm. RE có độ phức tạp vừa phải có thể trở thành tập hợp dài các dấu gạch chéo ngược, dấu ngoặc đơn và ký tự đại diện, khiến chúng khó đọc và khó hiểu

Đối với các RE như vậy, việc chỉ định cờ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4844 khi biên dịch biểu thức chính quy có thể hữu ích vì nó cho phép bạn định dạng biểu thức chính quy rõ ràng hơn

Cờ

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
4844 có một số hiệu ứng. Khoảng trắng trong biểu thức chính quy không nằm trong lớp ký tự sẽ bị bỏ qua. Điều này có nghĩa là một biểu thức chẳng hạn như
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
721 tương đương với biểu thức khó đọc hơn là
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
722, nhưng
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
723 sẽ vẫn khớp với các ký tự
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
82,
The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
817 hoặc dấu cách. Ngoài ra, bạn cũng có thể đặt nhận xét bên trong RE; . Khi được sử dụng với chuỗi trích dẫn ba lần, điều này cho phép các RE được định dạng gọn gàng hơn

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
23

Điều này dễ đọc hơn nhiều so với

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
24

Phản hồi¶

Biểu thức chính quy là một chủ đề phức tạp. Tài liệu này có giúp bạn hiểu chúng không?

Cuốn sách đầy đủ nhất về các biểu thức chính quy gần như chắc chắn là cuốn Mastering Regular Expressions của Jeffrey Friedl, được xuất bản bởi O'Reilly. Thật không may, nó hoàn toàn tập trung vào các biểu thức chính quy của Perl và Java, và hoàn toàn không chứa bất kỳ tài liệu Python nào, vì vậy nó sẽ không hữu ích như một tài liệu tham khảo để lập trình bằng Python. [Ấn bản đầu tiên đề cập đến mô-đun

The original string is : geeksforgeeks is best 4 geeks
The string after removal : geeksforgeeks is best 4
727 hiện đã bị xóa của Python, mô-đun này sẽ không giúp bạn nhiều. ] Cân nhắc kiểm tra nó từ thư viện của bạn

Chủ Đề