Giả sử, bạn đã sắp xếp các cách viết địa chỉ email và bạn cũng có một danh sách hàng nghìn địa chỉ email có thể hợp lệ hoặc không hợp lệ. Vì vậy, để kiểm tra tính hợp lệ của tất cả các địa chỉ email đó, thay vì kiểm tra từng địa chỉ một, sẽ rất hữu ích nếu có một mẫu nhất định có thể xác minh tính hợp lệ của địa chỉ email đó. Biểu thức chính quy là một cách mã hóa các mẫu như vậy
Biểu thức chính quy là một dãy ký tự đặc biệt giúp khớp các chuỗi hoặc bộ chuỗi hoặc một mẫu nhất định trên các loại dữ liệu khác nhau. Cụm từ thông dụng được sử dụng trong các công cụ tìm kiếm, hộp thoại tìm kiếm và thay thế của trình xử lý văn bản và trình soạn thảo văn bản, so khớp mẫu, quét web, trích xuất dữ liệu và nhiều hơn nữa
Sử dụng regex trong PythonTrong python, mô-đun regex có thể được sử dụng bằng cách nhập mô-đun dưới dạng
Biên dịch các biểu thức chính quy
Các biểu thức chính quy cần được tuân thủ trong các đối tượng Mẫu để triển khai thêm các hoạt động khác nhau, chẳng hạn như tìm kiếm các mẫu khớp hoặc thực hiện thay thế chuỗi
lại. biên dịch [mẫu, cờ]
Ở đầu ra, chúng ta có thể thấy mẫu đó có cờ là. UNICODE là thẻ mặc định. Nó cho biết rằng văn bản hoặc mẫu đã chuyển được coi là UNICODE. UNICODE hỗ trợ một số lượng lớn ký tự so với ASCII. Có nhiều cờ khác có thể được sử dụng cho các tính năng khác nhau. Ví dụ, lại. Cờ I [hoặc Ignore-case] có thể được sử dụng để bỏ qua trường hợp chữ cái trong mẫu biểu thức chính quy
Ở đây, như chúng ta đã sử dụng lá cờ. Tôi, chúng tôi đã hướng dẫn chương trình bỏ qua trường hợp thư. Vì vậy, mẫu sẽ khớp với tất cả các trường hợp chữ cái
Các trận đấu biểu diễnVì chúng ta đã tạo một đối tượng mẫu nên có thể thực hiện nhiều thao tác so khớp khác nhau trên đối tượng đó. Các phương pháp khác nhau được sử dụng để thực hiện so khớp là
lại. cuộc thi đấu[]
Nếu không hoặc nhiều ký tự ở đầu chuỗi khớp với RE, nó sẽ trả về đối tượng khớp
Ở chế độ nhiều dòng, nó cũng chỉ khớp với phần đầu của chuỗi chứ không phải phần đầu của mỗi dòng
Trả về Không nếu chuỗi không khớp với mẫu
lại. Tìm kiếm[]
Quét qua chuỗi để tìm vị trí đầu tiên mà mẫu RE tạo ra kết quả khớp. Nó được sử dụng để xác định vị trí khớp ở bất kỳ đâu trong chuỗi
lại. tìm tất cả []
Trả về tất cả các mẫu khớp không chồng chéo trong chuỗi, dưới dạng danh sách các chuỗi hoặc bộ. Như chúng ta thấy find là một danh sách các chuỗi
lại. công cụ tìm[]
Trả về tất cả các kết quả khớp không trùng lặp cho mẫu trong chuỗi dưới dạng một trình vòng lặp. Như chúng ta có thể thấy rằng loại match_i ở đầu ra là một callable_iterator
Bây giờ, hãy lấy một ví dụ
Ở đây, mẫu là $1 và chúng ta có thể thấy rõ rằng văn bản mà thao tác tìm kiếm đang được thực hiện có $1 trong đó
Nhưng tại sao đầu ra là 'Không'?
Nó liên quan đến một thứ gọi là Metacharacters. Lý do không tìm thấy $1 là vì ký hiệu '$' là một ký tự phụ được sử dụng trong các biểu thức chính quy
Siêu ký tự được coi là khối xây dựng của biểu thức chính quy. Biểu thức chính quy là các mẫu được sử dụng để so khớp các tổ hợp ký tự trong chuỗi. Siêu ký tự có ý nghĩa đặc biệt trong việc tìm kiếm các mẫu và chủ yếu được sử dụng để xác định tiêu chí tìm kiếm và bất kỳ thao tác văn bản nào
Vì vậy, điều đó có nghĩa là chúng ta không thể sử dụng dấu $?
Câu trả lời là, chúng ta có thể sử dụng nó. Nhưng để làm được điều đó, chúng ta cần sử dụng một siêu ký tự khác, '\' [Dấu gạch chéo ngược] để thoát khỏi siêu ký tự
Ở đây chúng tôi đã sử dụng Dấu gạch chéo ngược trong mẫu để làm rõ rằng chúng tôi muốn thoát ký tự $ metacharacter và sử dụng nó như một ký tự đơn giản hoặc một ký tự chữ
Bây giờ hãy lấy một ví dụ khác,
Như chúng tôi đã phát hiện ra rằng sử dụng dấu gạch chéo ngược, chúng tôi có thể thoát khỏi các siêu ký tự. Nhưng trong một số trường hợp, nó có thể không hoạt động như chúng ta nghĩ.
Chúng tôi biết về các nhân vật trốn thoát. Một số ký tự thoát được sử dụng nhiều nhất là \n [dòng mới], \t [tab], \’ [dấu nháy đơn], \\ [dấu gạch chéo ngược], v.v. Để sử dụng dấu gạch chéo ngược khi chúng ta viết một cái gì đó như địa chỉ thư mục Windows trong Python, chúng ta cần sử dụng hai dấu gạch chéo ngược
[\t thêm không gian tab và \n đưa ra dòng mới. ]
Để in chuỗi như chúng tôi dự định, chúng tôi sẽ cần sử dụng '\\' hai dấu gạch chéo ngược liên tiếp
[Trong dấu gạch chéo ngược kép \\ , dấu gạch chéo ngược thứ nhất thoát khỏi dấu gạch chéo thứ hai để ngụ ý dấu gạch chéo ngược thực tế. ]
Ngoài ra còn có một cách khác. Thay vì sử dụng dấu gạch chéo ngược kép, chúng ta có thể sử dụng chuỗi thô
Chuỗi thô Python được tạo bằng cách thêm tiền tố vào một chuỗi ký tự bằng 'r'. Nó coi dấu gạch chéo ngược [\] là ký tự chữ
Hãy xem ví dụ này,
Biến 'addrs' được khởi tạo bằng một chuỗi thô. Mục đích của việc sử dụng bốn dấu gạch chéo ngược trong mẫu là để trình thông dịch diễn giải nó thành hai dấu gạch chéo ngược trước và sau đó trong hai dấu gạch chéo ngược đó, một dấu gạch chéo ngược giúp thoát khỏi dấu gạch chéo ngược kia