| แองเคอร์ |
|---|
| ตรงกับตำแหน่งต้นของสตริง หรือต้นของบรรทัดเมื่อใช้แฟล็ก m | ^He → He |
| ตรงกับตำแหน่งท้ายของสตริง หรือท้ายของบรรทัดเมื่อใช้แฟล็ก m | lo$ → lo |
| ตรงกับขอบเขตคำ คือตำแหน่งระหว่างอักขระที่เป็นคำกับอักขระที่ไม่ใช่คำ | \bcat\b → cat |
| ตรงกับขอบเขตที่ไม่ใช่ขอบคำ คือตำแหน่งระหว่างอักขระที่เป็นคำด้วยกันสองตัว หรืออักขระที่ไม่ใช่คำด้วยกันสองตัว | \Bar → ar |
| คลาสอักขระ |
|---|
| ตรงกับอักขระเดี่ยวใดก็ได้ยกเว้นตัวขึ้นบรรทัดใหม่ เว้นแต่จะตั้งแฟล็ก s | a.c → abc |
| ตรงกับตัวเลขใดก็ได้ ตั้งแต่ 0 ถึง 9 | \d → 7 |
| ตรงกับอักขระใดก็ได้ที่ไม่ใช่ตัวเลข | \D → a |
| ตรงกับอักขระที่เป็นคำใดก็ได้ ได้แก่ ตัวอักษร ตัวเลข หรือเครื่องหมายขีดล่าง | \w → _ |
| ตรงกับอักขระใดก็ได้ที่ไม่ใช่อักขระคำ | \W → ! |
| ตรงกับอักขระช่องว่างใดก็ได้ เช่น เว้นวรรค แท็บ หรือการขึ้นบรรทัดใหม่ | a\sb → a b |
| ตรงกับอักขระใดก็ได้ที่ไม่ใช่ช่องว่าง | \S → a |
| ตรงกับอักขระหนึ่งตัวใดก็ได้จากที่ระบุไว้ภายในวงเล็บเหลี่ยม | [aeiou] → e |
| ตรงกับอักขระใดก็ได้ที่ไม่ได้อยู่ในรายการภายในวงเล็บเหลี่ยม | [^aeiou] → s |
| ตรงกับอักขระเดี่ยวใดก็ได้ในช่วงที่กำหนด จาก a ถึง z | [a-z] → m |
| ตรงกับอักขระเดี่ยวใดก็ได้รวมถึงการขึ้นบรรทัดใหม่ เป็นแบบแผนที่ใช้แทนจุดที่ต้องข้ามบรรทัด | [\s\S] → \n |
| ตรงกับตัวอักษรยูนิโคดจากระบบเขียนใดก็ได้ เมื่อตั้งแฟล็ก u | \p{L} → é |
| ตรงกับอักขระตัวเลขยูนิโคดจากระบบเขียนใดก็ได้ เมื่อตั้งแฟล็ก u | \p{N} → ٣ |
| escape: ตรงกับอักขระ line feed หนึ่งตัว | \n → line feed |
| escape: ตรงกับอักขระแท็บหนึ่งตัว | \t → tab |
| escape: ตรงกับอักขระ carriage return หนึ่งตัว | \r → carriage return |
| ตรงกับอักขระเดี่ยวที่มีรหัสเลขฐานสิบหกสองหลักตามที่กำหนด | \x41 → A |
| ตรงกับอักขระเดี่ยวที่มี code point เลขฐานสิบหกตามที่กำหนด เมื่อตั้งแฟล็ก u | \u{1F600} → 😀 |
| class intersection ด้วยแฟล็ก v: ตรงกับอักขระที่อยู่ในทั้งสองเซตพร้อมกัน | [[a-z]&&[^aeiou]] → t |
| ตัวระบุจำนวน |
|---|
| ตรงกับโทเคนก่อนหน้าศูนย์ครั้งขึ้นไป | ab* → abbb |
| ตรงกับโทเคนก่อนหน้าหนึ่งครั้งขึ้นไป | a+ → aaa |
| ตรงกับโทเคนก่อนหน้าศูนย์ครั้งหรือหนึ่งครั้ง ทำให้เป็นส่วนเสริม (optional) | colou?r → color |
| ตรงกับโทเคนก่อนหน้าตามจำนวน n ครั้งพอดี | a{3} → aaa |
| ตรงกับโทเคนก่อนหน้า n ครั้งขึ้นไป | a{2,} → aaaa |
| ตรงกับโทเคนก่อนหน้าตั้งแต่ n ถึง m ครั้ง รวมค่าปลายทั้งสองข้าง | a{2,4} → aaa |
| lazy quantifier: ตรงกับโทเคนก่อนหน้าศูนย์ครั้งขึ้นไป โดยหยิบน้อยที่สุดเท่าที่ทำได้ | <.*?> on <a><b> → <a> |
| lazy quantifier: ตรงกับโทเคนก่อนหน้าหนึ่งครั้งขึ้นไป โดยหยิบน้อยที่สุดเท่าที่ทำได้ | \d+? on 123 → 1 |
| lazy quantifier: ตรงกับโทเคนก่อนหน้าศูนย์ครั้งหรือหนึ่งครั้ง โดยเลือกศูนย์ครั้งก่อน | ab?? on ab → a |
| lazy quantifier: ตรงกับโทเคนก่อนหน้าตั้งแต่ n ถึง m ครั้ง โดยหยิบน้อยที่สุดเท่าที่ทำได้ | a{1,3}? on aaa → a |
| possessive quantifier (PCRE): ตรงกับโทเคนก่อนหน้าศูนย์ครั้งขึ้นไปและคงผลที่จับได้ ไม่ย้อนกลับ (backtrack) มาลองแบ่งส่วนแบบอื่น | .*+a on aaa → no match |
| กรุ๊ปและทางเลือก |
|---|
| capturing group: ตรงกับลำดับดังกล่าวและจดจำไว้ใช้เป็น backreference | (ab)+ → abab |
| non-capturing group: ตรงกับลำดับดังกล่าวโดยไม่จดจำ | (?:ab)+ → abab |
| positive lookahead: ตรงเมื่ออักขระถัดไปคือ abc โดยไม่กินอักขระเหล่านั้น | a(?=b) → a |
| negative lookahead: ตรงเมื่ออักขระถัดไปไม่ใช่ abc โดยไม่กินอักขระเหล่านั้น | a(?!b) → a |
| backreference: ตรงกับข้อความตรง ๆ ที่ capturing group หมายเลข 1 จับไว้ | (a)\1 → aa |
| alternation: ตรงกับนิพจน์ก่อนหรือหลังเครื่องหมายขีดตั้ง | cat|dog → dog |
| named capturing group: ตรงกับลำดับดังกล่าวและจดจำไว้ภายใต้ชื่อที่กำหนด | (?<year>\d{4}) → year = 2026 |
| positive lookbehind: ตรงเมื่ออักขระก่อนหน้าคือ abc โดยไม่กินอักขระเหล่านั้น | (?<=a)b → b |
| negative lookbehind: ตรงเมื่ออักขระก่อนหน้าไม่ใช่ abc โดยไม่กินอักขระเหล่านั้น | (?<!a)b → b |
| named backreference: ตรงกับข้อความตรง ๆ ที่กรุ๊ปที่มีชื่อจับไว้ | (?<w>\w+) \k<w> → the the |
| atomic group (PCRE): ตรงกับลำดับดังกล่าวหนึ่งครั้งและไม่ย้อนกลับเข้าไปในกรุ๊ปอีก | (?>a+)ab on aab → no match |
| branch reset (PCRE): การ alternation ที่ทุกกิ่งใช้หมายเลขกรุ๊ปชุดเดียวกัน | (?|(cat)|(dog)) → \1 = dog |
| แฟล็ก |
|---|
| แฟล็ก global: หาการจับคู่ทุกรายการในสตริง ไม่ใช่เฉพาะรายการแรก | /a/g on aaa → a, a, a |
| แฟล็ก case-insensitive: ละเว้นตัวพิมพ์ใหญ่-เล็กเมื่อจับคู่ | /Hi/i → hi |
| แฟล็ก multiline: ถือว่า ^ และ $ เป็นจุดเริ่มต้นและสิ้นสุดของแต่ละบรรทัด | /^a/m matches at the start of each line |
| แฟล็ก dotall: ให้จุดตรงกับการขึ้นบรรทัดใหม่ด้วย | /a.b/s → a\nb |
| แฟล็ก unicode: ถือว่าแพตเทิร์นและอินพุตเป็น code point ของยูนิโคด | /\u{1F600}/u → 😀 |
| แฟล็ก sticky: จับคู่เฉพาะที่ตำแหน่งที่ lastIndex กำหนดไว้เท่านั้น | /ab/y matches only at lastIndex |
| แฟล็ก indices: เพิ่มตำแหน่งเริ่มต้นและสิ้นสุดของการจับคู่ทุกรายการลงในผลลัพธ์ | /b/d on abc → indices [1, 2] |
| แฟล็ก unicode sets: เป็น u แบบเข้มงวดกว่าที่ยังอนุญาตการดำเนินการเซตภายในคลาสอักขระ | /[a-z&&[^aeiou]]/v → t |
| แฟล็ก extended (PCRE): ละเว้นช่องว่างที่ไม่ได้ escape และคอมเมนต์ # ภายในแพตเทิร์น | /a b/x → ab |