biểu thức chính quy là gì?
Biểu thức chính quy là một chuỗi ký tự tạo thành một mẫu tìm kiếm. Sử dụng biểu thức chính quy để kiểm tra xem một chuỗi có chứa mẫu tìm kiếm đã chỉ định trong Python hay không
Lợi ích của regex trong Python là gì?
Có nhiều lợi ích khi sử dụng biểu thức chính quy
- Tìm một chuỗi cụ thể trong phần văn bản lớn hơn
- Xác thực rằng một chuỗi chứa một định dạng cụ thể
- Thay thế văn bản tại các vị trí phù hợp
- Tách các chuỗi trong các kết quả khớp để tạo danh sách, mảng, v.v.
Python regex thay thế
Để thay thế một chuỗi khớp với biểu thức chính quy thay vì khớp hoàn hảo, hãy sử dụng Python re. phụ[]. Việc tái. sub[] là một phương thức tích hợp chấp nhận tối đa năm đối số và trả về các chuỗi đã thay thế.
Python regex replace là một cách tiếp cận để thực hiện thao tác tìm kiếm và thay thế đơn giản trên chuỗi. Nó có thể sửa đổi văn bản, tìm kiếm các mẫu và thực hiện các tác vụ xử lý văn bản khác.
Sử dụng phương thức thay thế chuỗi [] để thay thế chuỗi;
Làm thế nào để sử dụng lại. phương thức sub[] trong Python
Trăn lại. hàm sub[] trong mô-đun re có thể thay thế các chuỗi con. Để sử dụng phương thức sub[], trước tiên, chúng ta phải nhập module re, sau đó chúng ta mới có thể sử dụng phương thức sub[] của nó.
cú pháp
re.sub[pattern, repl, string, count=0, flags=0]
Tìm kiếm và thay thế đơn giản trong Python
import re str = 'aaa@gmail.com' print[re.sub['[a-z]*@', 'ApD@', str]]
Trong ví dụ trên, chúng tôi cố gắng thay thế các chữ thường từ a đến z trước ký tự @
Xem đầu ra
ApD@gmail.com
Từ đầu ra, chúng tôi có thể thấy rằng chúng tôi đã cập nhật thành công các địa chỉ email
Chỉ định số lượng
Chúng ta có thể truyền tham số đếm trong phương thức regex sub[]. Tôit gợi ý cho trình biên dịch rằng vui lòng không thay thế nhiều hơn giá trị của số đếm.
import re str = 'aaa@gmail.com' print[re.sub['[a-z]*@', 'ApD@', str, 2]]
đầu ra
ApD@gmail.com ApD@hotmail.com ccc@apple.com
Đầu ra cho thấy rằng nó chỉ thay thế hai địa chỉ email và địa chỉ cuối cùng là như vậy
Thay thế nhiều chuỗi con bằng chuỗi chính xác
Bạn có thể đính kèm chuỗi với [ ] để khớp với bất kỳ ký tự đơn nào. It can be used to replace multiple different characters with the same string
import re str = 'aaa@gmail.com bbb@hotmail.com ccc@apple.com' print[re.sub['[a-z]*@', 'info@', str]]
đầu ra
info@gmail.com info@hotmail.com info@apple.com
Bạn có thể thấy rằng nó thay thế cùng một chuỗi bằng nhiều chuỗi con
Nếu. phân định các mẫu, nó khớp với bất kỳ mẫu nào. Ngoài ra, có thể sử dụng các ký tự đặc biệt của biểu thức chính quy cho mỗi mẫu, nhưng cũng không sao ngay cả khi chuỗi thông thường được chỉ định
Nó có thể được sử dụng để thay thế nhiều chuỗi khác nhau bằng cùng một chuỗi
import re str = 'aaa@gmail.com bbb@hotmail.com ccc@apple.com' print[re.sub['gmail|hotmail|apple', 'appdividend', str]]
Trong đoạn mã trên, chúng ta có một chuỗi bao gồm ba chuỗi con
Chúng tôi đang thay thế bất kỳ chuỗi con nào trong ba chuỗi con bằng cổ tức ứng dụng. Nó sẽ thay thế tất cả nếu nó tìm thấy tất cả; . Nếu nó tìm thấy một trận đấu, thì nó sẽ thay thế một chuỗi con
đầu ra
________số 8Bạn có thể thấy rằng tất cả các chuỗi con được thay thế bằng appdividend
Hãy xem một kịch bản trong đó chỉ có một mẫu phù hợp
import re str = 'aaa@gmail.com bbb@amazon.com ccc@walmart.com' print[re.sub['gmail|hotmail|apple', 'appdividend', str]]
đầu ra
import re str = 'aaa@gmail.com' print[re.sub['[a-z]*@', 'ApD@', str]]0
Bạn có thể thấy rằng bbb@amazon. com và ccc@walmart. com không thay đổi
Chỉ aaa@gmail. com được thay thế bằng aaa@appdividend. com
Thay thế một chuỗi bằng phần phù hợp
Để thay thế một chuỗi con bằng phần khớp, hãy sử dụng chuỗi khớp với phần được bao trong [] trong chuỗi mới
import re str = 'aaa@gmail.com' print[re.sub['[a-z]*@', 'ApD@', str]]1
đầu ra
import re str = 'aaa@gmail.com' print[re.sub['[a-z]*@', 'ApD@', str]]2
\1 tương ứng với phần khớp với []. Nếu có nhiều [ ], hãy sử dụng chúng như \2, \3 …
Điều quan trọng là phải thoát \ like \\1 nếu đó là một chuỗi thông thường được bao quanh bởi dấu ” hoặc ” “, nhưng nếu đó là chuỗi thô có r ở đầu như r”, bạn có thể viết \1
Thay thế một chuỗi theo vị trí bằng một lát cắt
Không có phương pháp để xác định vị trí và thay thế nó;
import re str = 'aaa@gmail.com' print[re.sub['[a-z]*@', 'ApD@', str]]3
đầu ra
import re str = 'aaa@gmail.com' print[re.sub['[a-z]*@', 'ApD@', str]]4
Trong ví dụ mã trên, bạn có thể thấy rằng chúng tôi đã thêm một chuỗi con giữa các chỉ mục chuỗi 4 đến 7
Sự kết luận
Cách tốt nhất để thực hiện thay thế regex trong Python, hãy sử dụng lại. phương thức phụ[]
Đó là nó cho hướng dẫn này
Bài viết trước Cách thay thế một chuỗi trong Python
Bài viết tiếp theo Cách chuyển đổi Chuỗi thành Hex trong Python
kranal
https. //appdividend. com/
Krunal Lathiya là một kỹ sư công nghệ thông tin. Theo chuyên môn, anh ấy là một nhà phát triển web có kiến thức về nhiều nền tảng back-end [e. g. , PHP, Nút. js, Python] và các khung JavaScript giao diện người dùng [e. g. , Góc, Phản ứng và Vue]