Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Regular Expression Examples ใน Python - ตัวอย่าง Regex

Literal characters

ลำดับExample & Description
1python
จับคู่ต้นบรรทัด

Character classes

ลำดับExample & Description
1[Pp]ython
จับคู่ "Python" หรือ "python"
2rub[ye]
จับคู่ "ruby" หรือ "rube"
3[aeiou]
จับคู่สระพยัญชนะเล็กตัวใดตัวหนึ่ง
4[0-9]
จับคู่ตัวเลขใดๆ เหมือน [0123456789]
5[a-z]
จับคู่ตัวอักษร ASCII เล็กตัวใดๆ
6[A-Z]
จับคู่ตัวอักษร ASCII ใหญ่ตัวใดๆ
7[a-zA-Z0-9]
จับคู่ตัวอักษร/ตัวเลขใดๆ ข้างต้น
8[^aeiou]
จับคู่ทุกอย่างยกเว้นสระพยัญชนะเล็ก
9[^0-9]
จับคู่ทุกอย่างยกเว้นตัวเลข

Special Character Classes

ลำดับExample & Description
1.
จับคู่ตัวอักษรใดๆ ยกเว้น newline
2\d
จับคู่ตัวเลข: [0-9]
3\D
จับคู่ไม่ใช่ตัวเลข: [^0-9]
4\s
จับคู่ whitespace: [ \t\r\n\f]
5\S
จับคู่ non-whitespace: [^ \t\r\n\f]
6\w
จับคู่ word character เดียว: [A-Za-z0-9_]
7\W
จับคู่ non-word character: [^A-Za-z0-9_]

Repetition Cases

ลำดับExample & Description
1ruby?
จับคู่ "rub" หรือ "ruby": y เป็น optional
2ruby*
จับคู่ "rub" บวก 0 หรือมากกว่า y
3ruby+
จับคู่ "rub" บวก 1 หรือมากกว่า y
4\d{3}
จับคู่ตัวเลข 3 ตัวพอดี
5\d{3,}
จับคู่ตัวเลข 3 ตัวขึ้นไป
6\d{3,5}
จับคู่ตัวเลข 3, 4, หรือ 5 ตัว

Nongreedy repetition

จับคู่จำนวนการซ้ำน้อยที่สุด:

ลำดับExample & Description
1<.*>
Greedy repetition: จับคู่ "<python>perl>"
2<.*?>
Nongreedy: จับคู่ "<python>" ใน "<python>perl>"

Grouping with Parentheses

ลำดับExample & Description
1\D\d+
ไม่มีกลุ่ม: + ซ้ำ \d
2(\D\d)+
มีกลุ่ม: + ซ้ำคู่ \D\d
3([Pp]ython(, )?)+
จับคู่ "Python", "Python, python, python", ฯลฯ

Backreferences

จับคู่กลุ่มที่จับคู่ได้ก่อนหน้านี้อีกครั้ง:

ลำดับExample & Description
1([Pp])ython&\1ails
จับคู่ python&pails หรือ Python&Pails
2(['"])[^\1]*\1
สตริงที่มีเครื่องหมายคำพูดเดี่ยวหรือคู่ \1 จับคู่สิ่งที่กลุ่มแรกจับได้ \2 จับคู่สิ่งที่กลุ่มที่สองจับได้ ฯลฯ

Alternatives

ลำดับExample & Description
1python|perl
จับคู่ "python" หรือ "perl"
2rub(y|le))
จับคู่ "ruby" หรือ "ruble"
3Python(!+|\?)
"Python" ตามด้วย ! หนึ่งขึ้นไป หรือ ? หนึ่งตัว

Anchors

ต้องระบุตำแหน่งการจับคู่:

ลำดับExample & Description
1^Python
จับคู่ "Python" ที่ต้นสตริงหรือบรรทัดภายใน
2Python$
จับคู่ "Python" ที่ท้ายสตริงหรือบรรทัด
3\APython
จับคู่ "Python" ที่ต้นสตริง
4Python\Z
จับคู่ "Python" ที่ท้ายสตริง
5\bPython\b
จับคู่ "Python" ที่ word boundary
6\brub\B
\B คือ non-word boundary: จับคู่ "rub" ใน "rube" และ "ruby" แต่ไม่ได้จับคู่เอง
7Python(?=!)
จับคู่ "Python" ถ้าตามด้วย exclamation point
Python(?!!)
จับคู่ "Python" ถ้าไม่ตามด้วย exclamation point