Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Ví dụ biểu thức chính quy trong Python


Ký tự chữ (Literal characters)

STTVí dụ & Mô tả
1python
Khớp đầu dòng.

Lớp ký tự (Character classes)

STTVí dụ & Mô tả
1[Pp]ython
Khớp "Python" hoặc "python".
2rub[ye]
Khớp "ruby" hoặc "rube".
3[aeiou]
Khớp bất kỳ nguyên âm thường nào.
4[0-9]
Khớp bất kỳ chữ số nào; giống [0123456789].
5[a-z]
Khớp bất kỳ chữ cái ASCII thường nào.
6[A-Z]
Khớp bất kỳ chữ cái ASCII hoa nào.
7[a-zA-Z0-9]
Khớp bất kỳ ký tự nào trong các nhóm trên.
8[^aeiou]
Khớp bất kỳ ký tự nào ngoại trừ nguyên âm thường.
9[^0-9]
Khớp bất kỳ ký tự nào ngoại trừ chữ số.

Lớp ký tự đặc biệt (Special Character Classes)

STTVí dụ & Mô tả
1.
Khớp bất kỳ ký tự nào trừ newline.
2\d
Khớp chữ số: [0-9].
3\D
Khớp không phải chữ số: [^0-9].
4\s
Khớp ký tự khoảng trắng: [ \t\r\n\f].
5\S
Khớp không phải khoảng trắng: [^ \t\r\n\f].
6\w
Khớp ký tự từ đơn lẻ: [A-Za-z0-9_].
7\W
Khớp ký tự không phải từ: [^A-Za-z0-9_].

Trường hợp lặp lại (Repetition Cases)

STTVí dụ & Mô tả
1ruby?
Khớp "rub" hoặc "ruby": y là tùy chọn.
2ruby*
Khớp "rub" cộng 0 hoặc nhiều y.
3ruby+
Khớp "rub" cộng 1 hoặc nhiều y.
4\d{3}
Khớp chính xác 3 chữ số.
5\d{3,}
Khớp 3 hoặc nhiều chữ số hơn.
6\d{3,5}
Khớp 3, 4, hoặc 5 chữ số.

Lặp lại không tham lam (Nongreedy repetition)

Điều này khớp với số lượng lặp lại nhỏ nhất:

STTVí dụ & Mô tả
1<.*>
Lặp tham lam: khớp "<python>perl>".
2<.*?>
Không tham lam: khớp "<python>" trong "<python>perl>".

Nhóm với dấu ngoặc đơn (Grouping with Parentheses)

STTVí dụ & Mô tả
1\D\d+
Không nhóm: + lặp lại \d.
2(\D\d)+
Đã nhóm: + lặp lại cặp \D\d.
3([Pp]ython(, )?)+
Khớp "Python", "Python, python, python", v.v.

Tham chiếu ngược (Backreferences)

Điều này khớp lại một nhóm đã khớp trước đó:

STTVí dụ & Mô tả
1([Pp])ython&\1ails
Khớp python&pails hoặc Python&Pails.
2(['"])[^\1]*\1
Chuỗi được trích dẫn đơn hoặc kép. \1 khớp với những gì nhóm 1 khớp. \2 khớp với nhóm 2, v.v.

Lựa chọn thay thế (Alternatives)

STTVí dụ & Mô tả
1python|perl
Khớp "python" hoặc "perl".
2rub(y|le)
Khớp "ruby" hoặc "ruble".
3Python(!+|\?)
"Python" theo sau bởi một hoặc nhiều ! hoặc một ?.

Neo (Anchors)

Cần chỉ định vị trí khớp.

STTVí dụ & Mô tả
1^Python
Khớp "Python" tại đầu chuỗi hoặc dòng nội bộ.
2Python$
Khớp "Python" tại cuối chuỗi hoặc dòng.
3\APython
Khớp "Python" tại đầu chuỗi.
4Python\Z
Khớp "Python" tại cuối chuỗi.
5\bPython\b
Khớp "Python" tại ranh giới từ.
6\brub\B
\B là ranh giới không phải từ: khớp "rub" trong "rube" và "ruby" nhưng không đơn lẻ.
7Python(?=!)
Khớp "Python", nếu theo sau là dấu chấm than.
8Python(?!!)
Khớp "Python", nếu không theo sau là dấu chấm than.