Literal characters
| ลำดับ | Example & Description |
|---|---|
| 1 | python จับคู่ต้นบรรทัด |
Character classes
| ลำดับ | Example & Description |
|---|---|
| 1 | [Pp]ython จับคู่ "Python" หรือ "python" |
| 2 | rub[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 |
|---|---|
| 1 | ruby? จับคู่ "rub" หรือ "ruby": y เป็น optional |
| 2 | ruby* จับคู่ "rub" บวก 0 หรือมากกว่า y |
| 3 | ruby+ จับคู่ "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 |
|---|---|
| 1 | python|perl จับคู่ "python" หรือ "perl" |
| 2 | rub(y|le)) จับคู่ "ruby" หรือ "ruble" |
| 3 | Python(!+|\?) "Python" ตามด้วย ! หนึ่งขึ้นไป หรือ ? หนึ่งตัว |
Anchors
ต้องระบุตำแหน่งการจับคู่:
| ลำดับ | Example & Description |
|---|---|
| 1 | ^Python จับคู่ "Python" ที่ต้นสตริงหรือบรรทัดภายใน |
| 2 | Python$ จับคู่ "Python" ที่ท้ายสตริงหรือบรรทัด |
| 3 | \APython จับคู่ "Python" ที่ต้นสตริง |
| 4 | Python\Z จับคู่ "Python" ที่ท้ายสตริง |
| 5 | \bPython\b จับคู่ "Python" ที่ word boundary |
| 6 | \brub\B \B คือ non-word boundary: จับคู่ "rub" ใน "rube" และ "ruby" แต่ไม่ได้จับคู่เอง |
| 7 | Python(?=!) จับคู่ "Python" ถ้าตามด้วย exclamation point |
| Python(?!!) จับคู่ "Python" ถ้าไม่ตามด้วย exclamation point |