Computer >> Máy Tính >  >> Lập trình >> Python

Cách khớp các mẫu và chuỗi bằng cách sử dụng mô-đun RegEx trong Python

Giới thiệu

Mô-đun RegEx là viết tắt của Cụm từ thông dụng. Nếu bạn đã từng làm việc về lập trình, bạn hẳn đã gặp thuật ngữ này vài lần rồi. Chúng tôi sử dụng Biểu thức chính quy để tìm kiếm và thay thế, nó được sử dụng trong nhiều trình soạn thảo văn bản, công cụ tìm kiếm, trình xử lý văn bản, v.v.

Nói cách khác, nó giúp khớp với một mẫu nhất định mà bạn đang tìm kiếm.

Một ví dụ điển hình cho điều này là cách trang web cắt dán của bạn cho phép bạn chỉ sử dụng thư trường đại học của mình và không sử dụng các tiện ích mở rộng khác.

Bắt đầu

Mô-đun biểu thức chính quy được đóng gói trong Python. Bạn không cần tải xuống và cài đặt riêng.

Để bắt đầu truy cập nội dung của nó, trước tiên chúng ta phải nhập mô-đun. Để nhập mô-đun RegEx, chúng tôi sử dụng

 nhập lại 

Khám phá các chức năng khác nhau

Mô-đun RegEx đi kèm với rất nhiều chức năng và điều cần thiết là phải hiểu và biết sự khác biệt giữa từng chức năng.

Dưới đây là một vài hàm quan trọng mà bạn chắc chắn sẽ sử dụng khi bắt đầu làm việc với các dự án Python.

Ví dụ

 re.compile (mẫu, cờ) # Biên dịch mẫu được so khớpre.search (mẫu, chuỗi, cờ) # Tìm kiếm thông qua chuỗi để biết khớp chính xác (mẫu, chuỗi, cờ) # Kiểm tra nếu có khớp giữa mẫu và stringre.split (mẫu, chuỗi, tối đa, cờ) # Tìm chuỗi dựa trên mẫu được cung cấpre.findall (mẫu, chuỗi, cờ) # Nhập tất cả các kết quả phù hợp được tìm thấy bằng patternre.finditer (mẫu, chuỗi, flags) # Trả về chuỗi dưới dạng objectre.sub có thể lặp lại (mẫu, repl, chuỗi, đếm) # Thay thế chuỗi bằng patternre.subn (mẫu, repl, chuỗi, đếm) # Làm tương tự như re.sub nhưng trả về nó trong một bộ tuple (chuỗi và số lượng) re.escape (mẫu) # Quét tất cả các ký tự không phải ký tự ascii 

re.compile và re.match các hàm

Hãy để chúng tôi lấy một chuỗi, nói "Xin chào thế giới". Bây giờ, chúng ta hãy tìm hiểu xem chuỗi trên có trong chuỗi “Hello world! Mọi thứ diễn ra như thế nào? ”

Để thực hiện việc này, chúng tôi sử dụng các hàm re.compile và re.match.

 x =re.compile (“Xin chào thế giới”) y =x.match (“Xin chào thế giới! Mọi thứ diễn ra thế nào?”) if (y):print ("Các chuỗi khớp") else:print ("Các chuỗi làm không khớp ") 

Đầu ra

 Đối sánh chuỗi 

Nếu bạn đang thắc mắc, tại sao chúng ta không thể làm điều này nếu không sử dụng hàm biên dịch, bạn đã đúng! Chúng tôi có thể làm điều này mà không cần sử dụng chức năng biên dịch.

 x =re.match (“Hello world”, "Hello world! Mọi thứ đang diễn ra thế nào?") if (y):print ("Chuỗi khớp") else:print ("Các chuỗi không khớp")  

Đầu ra

 Đối sánh chuỗi 

hàm re.split

 x =re.split ("\ W +", "Hello, World") print (x) x =re.split ("(\ W +)", "Xin chào, Worldprint (x) 

Đầu ra

 ['Xin chào', 'Thế giới'] ['Xin chào', ',', 'Thế giới'] 

Trong ví dụ trên, “\ W +” về cơ bản có nghĩa là bắt đầu tách từ bên trái và dấu + có nghĩa là tiếp tục di chuyển về phía trước cho đến khi kết thúc. Khi nó được đặt trong dấu ngoặc như trong trường hợp 2, nó cũng tách ra và thêm các dấu chấm câu, như dấu phẩy.

chức năng re.sub và re.subn

 x =re.sub (r "there", "World", "Hello there. Python is fun.") print (x) x =re.subn (r "there", "World", "Xin chào bạn! . Python rất thú vị. Xin chào ") print (x) 

Đầu ra

 Xin chào thế giới. Python is fun. ('Hello World. Python is fun. Hello World', 2) 

Trong ví dụ trên, re.sub sẽ kiểm tra xem từ “there” có tồn tại hay không và thay thế nó bằng “world”.

Hàm subn thực hiện điều tương tự nhưng trả về một bộ giá trị thay vì một chuỗi và cũng thêm vào tổng số lần thay thế được thực hiện.

Ví dụ trong thế giới thực

Một trong những ứng dụng / ví dụ trong thế giới thực để sử dụng mô-đun RegEx sẽ là xác thực mật khẩu.

 import rematching_sequence =r "[0−9]" while (True):x =input ("Nhập mật khẩu của bạn:") r =re.search (match_sequence, x) if (r và len (x)> 6 ):print (x + "là mật khẩu hợp lệ") else:print (x + "không phải là mật khẩu hợp lệ. Mật khẩu PHẢI có ít nhất 7 ký tự với ít nhất 1 số") đầu vào ("Nhấn phím Enter để thoát")  

Chương trình sẽ kiểm tra xem bạn đã nhập mật khẩu hợp lệ (7+ ký tự với ít nhất một số) hay chưa.

Kết luận

Bạn đã học những kiến ​​thức cơ bản về mô-đun RegEx có trong Python và tất cả các chức năng khác nhau có trong nó.

Có rất nhiều chức năng và cách sử dụng khác cho mô-đun RegEx. Nếu bạn quan tâm, bạn có thể đọc thêm từ tài liệu chính thức của họ tại https://docs.python.org/3/library/re.html.