RegEx Python
- Trang trước JSON Python
- Trang tiếp theo PIP Python
RegEx hoặc biểu thức chính quy là chuỗi ký tự tạo thành mẫu tìm kiếm.
RegEx có thể được sử dụng để kiểm tra chuỗi có chứa mẫu tìm kiếm cụ thể hay không.
RegEx
Python cung cấp mô-đun có tên re
Gói tích hợp, có thể được sử dụng để xử lý biểu thức chính quy。
Tải re
Mô-đun:
import re
Biểu thức chính quy trong Python
Tải re
Sau khi cài đặt mô-đun, bạn có thể bắt đầu sử dụng biểu thức chính quy:
Ví dụ
Tìm kiếm chuỗi để xem nó có bắt đầu bằng "China" và kết thúc bằng "country" hay không:
import re txt = "China là một đất nước tuyệt vời" x = re.search("^China.*country$", txt)
Hàm RegEx
re
Mô-đun cung cấp một nhóm hàm, cho phép chúng ta tìm kiếm chuỗi để khớp:
Hàm | Mô tả |
---|---|
findall | Trả về danh sách các phần khớp |
search | Nếu có khớp ở bất kỳ vị trí nào trong chuỗi, thì trả về đối tượng Match |
split | Trả về danh sách các phần đã phân chia chuỗi trong mỗi lần khớp |
sub | Thay thế một hoặc nhiều phần khớp bằng chuỗi |
Ký tự đặc biệt
Ký tự là ký tự có ý nghĩa đặc biệt:
Ký tự | Mô tả | Mẫu | TIY |
---|---|---|---|
[] | Một nhóm ký tự | "[a-m]" | Thử thử |
\ | Hiển thị chuỗi đặc biệt (cũng có thể được sử dụng để chuyển đổi ký tự đặc biệt) | "\d" | Thử thử |
. | Bất kỳ ký tự nào (trừ ký tự mới dòng) | "he..o" | Thử thử |
^ | Bắt đầu bằng | "^hello" | Thử thử |
$ | Kết thúc bằng | "world$" | Thử thử |
* | Xuất hiện không lần hoặc nhiều lần | "aix*" | Thử thử |
+ | Xuất hiện một lần hoặc nhiều lần | "aix+" | Thử thử |
{} | Xác định chính xác số lần xuất hiện | "al{2}" | Thử thử |
| | Cả hai | "falls|stays" | Thử thử |
(() | Bắt giữ và nhóm |
Định dạng chuỗi đặc biệt
Định dạng chuỗi đặc biệt là \
Đi theo một ký tự trong bảng sau và có ý nghĩa đặc biệt:
Ký tự | Mô tả | Mẫu | TIY |
---|---|---|---|
\A | Nếu ký tự được chỉ định nằm ở đầu chuỗi, thì trả về phần khớp | "\AThe" | Thử thử |
\b | Trả về phần khớp của ký tự được chỉ định nằm ở đầu hoặc cuối từ |
r"\bain" r"rain\b" |
Thử thử Thử thử |
\B | Trả về phần khớp của ký tự được chỉ định tồn tại nhưng không ở đầu (hoặc cuối) từ |
r"\Bain" r"rain\B" |
Thử thử Thử thử |
\d | Trả về phần khớp của chuỗi chứa số (số 0-9) | "\d" | Thử thử |
\D | Trả về phần khớp của chuỗi không chứa số | "\D" | Thử thử |
\s | Trả về phần khớp của chuỗi chứa ký tự trống | "\s" | Thử thử |
\S | Trả về phần khớp của chuỗi không chứa ký tự trống | "\S" | Thử thử |
\w | Trả về một phần khớp, trong đó chuỗi chứa bất kỳ ký tự từ vựng nào (Từ a đến Z là các ký tự, từ 0 đến 9 là các số và ký tự gạch dưới _) |
"\w" | Thử thử |
\W | Trả về một phần khớp, trong đó chuỗi không chứa bất kỳ ký tự từ vựng nào | "\W" | Thử thử |
\Z | Nếu ký tự được chỉ định nằm ở cuối chuỗi, thì trả về phần khớp | "Spain\Z" | Thử thử |
集合(Set)
Bộ sưu tập (Set) là một đối tượng bằng hai dấu ngoặc vuông []
Là một nhóm các ký tự trong đó có ý nghĩa đặc biệt:
Bộ sưu tập | Mô tả | Thử thử |
---|---|---|
[arn] | Trả về phần tử khớp của bất kỳ ký tự nào trong số a, r hoặc n | Thử thử |
[a-n] | Trả về các phần tử khớp của bất kỳ ký tự viết thường nào giữa a và n | Thử thử |
[^arn] | Trả về các phần tử khớp của bất kỳ ký tự nào ngoài a, r và n | Thử thử |
[0123] | Trả về các phần tử khớp của bất kỳ số nào trong số 0, 1, 2 hoặc 3 | Thử thử |
[0-9] | Trả về các phần tử khớp của bất kỳ số nào từ 0 đến 9 | Thử thử |
[0-5][0-9] | Trả về các phần tử khớp của bất kỳ số nào từ 0 đến 9 | Thử thử |
[a-zA-Z] | Trả về các phần tử khớp của bất kỳ ký tự nào giữa a và z, viết thường hoặc in hoa | Thử thử |
[+] | Trong bộ sưu tập, +, *, ., |, (), $, {} không có ý nghĩa đặc biệt, vì vậy [+] biểu thị: trả về các phần tử khớp của ký tự + trong chuỗi | Thử thử |
Hàm findall()
findall()
Hàm trả về danh sách chứa tất cả các phần tử khớp.
Ví dụ
In danh sách tất cả các phần tử khớp:
import re str = "China is a great country" x = re.findall("a", str) print(x)
Danh sách này chứa các phần tử khớp theo thứ tự được tìm thấy.
Nếu không tìm thấy phần tử khớp, thì trả về danh sách rỗng:
Ví dụ
Nếu không tìm thấy khớp, thì trả về danh sách rỗng:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
Hàm search()
search()
Hàm tìm kiếm phần tử khớp trong chuỗi, nếu có khớp thì trả về đối tượng Match.
Nếu có nhiều khớp, chỉ trả về phần tử khớp đầu tiên:
Ví dụ
Tìm kiếm ký tự trắng đầu tiên trong chuỗi:
import re str = "China is a great country" x = re.search("\s", str) print("Vị trí ký tự trắng đầu tiên là: ", x.start())
Nếu không tìm thấy khớp, thì giá trị trả về None
:
Ví dụ
Tìm kiếm không trả về phần tử khớp:
import re str = "China is a great country" x = re.search("USA", str) print(x)
Hàm split()
split()
Hàm trả về một danh sách các phần tử chuỗi được tách mỗi khi khớp:
Ví dụ
Tách chuỗi tại mỗi ký tự trắng:
import re str = "China is a great country" x = re.split("\s", str) print(x)
Bạn có thể chỉ định maxsplit
Tham số để kiểm soát số lần xuất hiện:
Ví dụ
Chỉ tách chuỗi tại lần xuất hiện đầu tiên:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
Hàm sub()
sub()
Hàm thay thế phần tử khớp bằng văn bản bạn chọn:
Ví dụ
Thay thế mọi ký tự trắng bằng số 9:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
Bạn có thể chỉ định count
Tham số để kiểm soát số lần thay thế:
Ví dụ
Thay thế hai lần xuất hiện đầu tiên:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
Đối tượng Match
Đối tượng Match là đối tượng chứa thông tin về việc tìm kiếm và kết quả.
Ghi chú:Nếu không có khớp, sẽ trả về giá trị None
mà không phải là đối tượng Match.
Ví dụ
Thực hiện sẽ trả về đối tượng Match của việc tìm kiếm:
import re str = "China is a great country" x = re.search("a", str) print(x) # Sẽ in một đối tượng
Đối tượng Match cung cấp các thuộc tính và phương pháp để lấy lại thông tin về việc tìm kiếm và kết quả:
span()
Đối tượng trả về bao gồm vị trí bắt đầu và kết thúc của khớp.string
Trả về chuỗi được truyền vào hàmgroup()
Trả về phần chuỗi khớp
Ví dụ
In vị trí xuất hiện đầu tiên của khớp (vị trí bắt đầu và kết thúc):
Tìm kiếm biểu thức chính quy bắt đầu bằng chữ cái in "C" nào đó:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
Ví dụ
In chuỗi được truyền vào hàm:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
Ví dụ
In phần chuỗi khớp.
Tìm kiếm biểu thức chính quy bắt đầu bằng chữ cái in "C" nào đó:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
Ghi chú:Nếu không có mục匹ch, sẽ trả về giá trị None
mà không phải là đối tượng Match.
- Trang trước JSON Python
- Trang tiếp theo PIP Python