Skip to content

โทเคน Regex อธิบาย

โทเคน regex หลักครบทุกตัว: แองเคอร์ คลาสอักขระ ตัวระบุจำนวน กรุ๊ป และแฟล็ก พร้อมความหมายของแต่ละตัวและตัวอย่างที่จับคู่ได้จริง เป็นคู่มืออ้างอิงด่วนคู่กับเครื่องมือทดสอบ Regex

โทเคน regex ประกอบกันได้: ซ้อนแองเคอร์ คลาสอักขระ และตัวระบุจำนวนเข้าด้วยกันเพื่อสร้างแพตเทิร์น ^ ตรึงที่จุดเริ่มต้น \d ตรงกับตัวเลข และ {2,4} กำหนดจำนวนครั้ง รวมกันเป็น ^\d{2,4}$ เพื่อจับคู่สตริงที่เป็นตัวเลขสองถึงสี่หลักทั้งชุด อ่านแพตเทิร์นจากซ้ายไปขวาทีละโทเคน เครื่องมือทดสอบ Regex ที่มาพร้อมกันนี้ให้คุณลองใช้โทเคนเหล่านี้กับข้อความของคุณเองแบบสด ๆ

ตารางอ้างอิง · 55 รายการเปิดเครื่องมือ regex-tester →
55 of 55 rows
แองเคอร์
ตรงกับตำแหน่งต้นของสตริง หรือต้นของบรรทัดเมื่อใช้แฟล็ก m^He → He
ตรงกับตำแหน่งท้ายของสตริง หรือท้ายของบรรทัดเมื่อใช้แฟล็ก mlo$ → lo
ตรงกับขอบเขตคำ คือตำแหน่งระหว่างอักขระที่เป็นคำกับอักขระที่ไม่ใช่คำ\bcat\b → cat
ตรงกับขอบเขตที่ไม่ใช่ขอบคำ คือตำแหน่งระหว่างอักขระที่เป็นคำด้วยกันสองตัว หรืออักขระที่ไม่ใช่คำด้วยกันสองตัว\Bar → ar
คลาสอักขระ
ตรงกับอักขระเดี่ยวใดก็ได้ยกเว้นตัวขึ้นบรรทัดใหม่ เว้นแต่จะตั้งแฟล็ก sa.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