Regex Cheat Sheet: คู่มือ Regular Expression แบบ Interactive ที่ใช้ได้จริง
เลิกเสียเวลา search หา regex syntax ใหม่ทุก sprint — cheat sheet นี้รวม 56 รูปแบบจาก 9 หมวด ค้นหาได้ทันที กด copy ได้ one-click พร้อมตัวอย่างที่ match จริง
Table of Contents
นักพัฒนาส่วนใหญ่คุ้นเคยกับพิธีกรรมนี้ดี — วันนี้ต้อง validate ช่อง email ดึงวันที่จาก log line หรือ split string ด้วย delimiter พิเศษ แล้วก็ต้องเปิด search ไปสามสี่แท็บเพื่อนึกให้ได้ว่า \d กับ \w ตัวไหน match ตัวเลขกันแน่ Regular expression เป็นเครื่องมือที่ทรงพลังที่สุดอย่างหนึ่งในชุดเครื่องมือของ developer แต่ syntax ก็แน่นจนแทบไม่มีใครจำได้ครบทุกตัว
นี่คือเหตุผลที่เราสร้าง Interactive Regex Cheat Sheet ขึ้นมา — หน้าเดียวที่รวม 56 syntax entries ที่จำเป็นจัดอยู่ใน 9 หมวด ได้แก่ anchors, character classes, quantifiers, groups, alternation, lookaround, escapes, flags และ common patterns ทุก entry มีคำอธิบายภาษาไทยที่เข้าใจง่าย พร้อมตัวอย่างการ match จริง คุณจะได้เห็นไม่ใช่แค่ syntax แต่เห็นว่ามันทำอะไรกับข้อความจริง ๆ
จุดเด่นสำคัญคือความเร็ว ช่อง search กรองทั้ง 56 entries แบบทันทีขณะพิมพ์ และทุก syntax chip กด copy ได้ one-click ทั้งหมดทำงาน client-side ใน browser ของคุณ — ฟรี ไม่ต้องสมัคร ไม่มีข้อมูลถูกส่งออกจากเครื่อง กด bookmark ไว้ครั้งเดียว แล้วคุณอาจไม่ต้อง search หา regex syntax อีกเลย
ทำไมต้องใช้ Regex Cheat Sheet แบบ Interactive
- เรียกใช้ได้ทันที ไม่ต้องท่องจำ — คุณไม่จำเป็นต้องจำ (?<=a)b ให้ได้ แต่ต้องหาเจอในสองวินาทีตอนกำลังทำงาน การ search แบบมี target เร็วกว่าเลื่อนดู PDF poster มากมาย
- Syntax พร้อม copy — ทุก entry ห่างจาก clipboard ของคุณแค่คลิกเดียว ไม่ต้องพิมพ์ตามเอง และไม่เจอปัญหา backslash ถูก render ผิดจาก blog ทั่วไป
- ตัวอย่างการ match จริง — แต่ละ entry แสดงสิ่งที่ syntax match จริง ๆ เช่น \d{3} จับ 123 ใน Order 12345 ซึ่งเข้าใจง่ายกว่านิยาม abstract มาก
- ครบทุกระดับในหน้าเดียว — 9 หมวดพาคุณจาก anchor พื้นฐานอย่าง ^ และ $ ไปจนถึง lookaround ขั้นสูงอย่าง (?<!a)b cheat sheet โตไปพร้อมกับคุณ
- Zero friction — ทำงาน client-side ฟรี ไม่ต้องมี account เปิดแท็บ หา pattern แล้วกลับไปทำงานต่อ
- รองรับสองภาษา — คำอธิบายทุก entry มีทั้งภาษาไทยและอังกฤษ เหมาะเป็น reference ร่วมของทีมที่ใช้หลายภาษา
ฟีเจอร์เด่น
| หมวด | ครอบคลุมอะไร | ตัวอย่าง |
|---|---|---|
| Anchors | ขอบเริ่มต้น/สิ้นสุดของ string | ^start, end$, \b ขอบคำ |
| Character Classes | อักขระตัวเดียวจะเป็นอะไรได้ | \d, \w, [a-z], [^abc] |
| Quantifiers | ทำซ้ำกี่ครั้ง | *, +, ?, {2,5} |
| Groups & Capturing | ดึง sub-pattern ออกมา | (abc), (?:x), (?<name>x) |
| Alternation | เงื่อนไข OR | cat|dog, (?:http|https) |
| Lookaround | เช็คบริบทโดยไม่กินอักขระ | a(?=b), (?<=\$)\d |
| Escapes | ใช้อักขระพิเศษแบบ literal | \., \*, \n, \t |
| Flags | ปรับพฤติกรรมของ pattern | /gi, /m, /s, /u |
| Common Patterns | สูตรสำเร็จรูป | email, URL, IPv4, ISO date, hex color |
- Search แบบทันที — พิมพ์ digit, anchor หรือแม้แต่ + แล้วรายการจะแคบลงทันทีคร่อมทุกหมวด
- Copy แบบ one-click — ทุก syntax chip copy ขึ้น clipboard พร้อมสัญลักษณ์ยืนยัน พร้อมเอาไปวางใน editor หรือ REPL ทันที
- ตัวอย่างที่ตรวจแล้ว — ตัวอย่างการ match เขียนจาก input สมจริง (เลขที่ order, URL, วันที่) พฤติกรรมจึงตรงกับที่คุณจะเจอใน production
วิธีใช้งาน
- เปิด tool ที่ Regex Cheat Sheet — ไม่ต้องตั้งค่าหรือ login
- Search หรือ browse — พิมพ์ keyword เช่น digit หรือ lookahead ลงในช่อง search หรือเลื่อนดูทั้ง 9 หมวดได้เลย
- อ่าน entry card — แต่ละ card มี syntax chip, คำอธิบายภาษาไทย และตัวอย่างการ match จริง
- กด Copy — syntax ขึ้น clipboard ทันที พร้อมเครื่องหมายถูกยืนยันบนปุ่ม
- เอาไปวางใน code — วางใน editor, test runner, คำสั่ง grep หรือลองผ่าน Regex Tester เพื่อ validate กับข้อมูลจริงของคุณ
เจาะลึกทั้ง 9 หมวด
Anchors ไม่ได้ match อักขระ แต่ match "ตำแหน่ง" — ^ ยืนยันจุดเริ่ม string (หรือจุดเริ่มบรรทัดเมื่อใช้ flag m) $ ยืนยันจุดสิ้นสุด ส่วน \b match ขอบของคำ พวกมันคือวิธีตรึง ^\d{4} ให้หมายถึง "สี่หลักที่ต้น string เท่านั้น" แทนที่จะเป็น "สี่หลักที่ไหนก็ได้"
Character classes กำหนดว่าอักขระหนึ่งตัวจะเป็นอะไรได้ ชุด shorthand ที่ควรซึมซาบคือ \d สำหรับตัวเลข \w สำหรับ word character \s สำหรับ whitespace และตัวพิมพ์ใหญ่ \D, \W, \S คือ negation custom class อย่าง [a-f0-9] หรือแบบ negate [^abc] ใช้จัดการทุกกรณีที่เหลือ ส่วน dot . match อะไรก็ได้ยกเว้น newline (เว้นแต่เปิด flag s)
Quantifiers ควบคุมการทำซ้ำ — * คือศูนย์ครั้งขึ้นไป + หนึ่งครั้งขึ้นไป ? ศูนย์หรือหนึ่งครั้ง และ {n,m} กำหนดช่วง exact จุดที่คนพลาดบ่อยที่สุดคือความ greedy — โดย default quantifier จะกินให้มากที่สุดเท่าที่ทำได้ ส่วนแบบ lazy *?, +?, ?? จะ match น้อยที่สุดเท่าที่ทำได้ ความต่างนี้มักเป็นต้นเหตุของ "ทำไม regex ของฉัน match มากเกินไป"
Groups ให้คุณจับหลายอักขระเป็นหนึ่งหน่วยและ capture สิ่งที่มัน match — (abc) capture ไว้ใช้ต่อผ่าน backreference \1 หรือ replacement string, (?:abc) จับกลุ่มแบบไม่ capture (เร็วกว่า และไม่รบกวนลำดับ group) และ (?<name>x) ให้ named group ที่อ่านรู้เรื่อง
Alternation คือ operator OR ของ regex — cat|dog match อย่างใดอย่างหนึ่ง ข้อควรระวังคือขอบเขต ab|cd หมายถึง (ab)|(cd) ไม่ใช่ a(b|c)d เมื่อต้องการให้อยู่ในขอบเขต ให้ห่อด้วย group และจำไว้ว่า engine ส่วนใหญ่ลองทางเลือกจากซ้ายไปขวา ทางไหน match ก่อนชนะ
Lookaround เพิ่มเงื่อนไขโดยไม่กิน input — a(?=b) match ตัว a เฉพาะเมื่อมี b ตามหลัง, a(?!b) เฉพาะเมื่อไม่มี b ตามหลัง และแบบ lookbehind (?<=a)b / (?<!a)b เช็คสิ่งที่อยู่ข้างหน้า พวกมันจำเป็นมากสำหรับโจทย์แบบ "match X แต่เฉพาะในบริบท Y" เช่น ดึงจำนวนเงิน: (?<=\$)\d+
Escapes ทำให้อักขระพิเศษกลับเป็น literal — จะ match . * + ( หรือ [ ตัวจริง ให้สั่งด้วย backslash: \., \*, \( รวมถึง control character อย่าง \n, \t และ Unicode escape อย่าง \uFFFF
Flags เปลี่ยนพฤติกรรมของทั้ง pattern — g หาทุก match ไม่ใช่แค่อันแรก, i ไม่สน case, m ทำให้ anchor ทำงานรายบรรทัด, s ให้ dot match newline ด้วย, u เปิด full Unicode และ y คือ sticky matching จาก index ปัจจุบัน
Common patterns คือสูตรสำเร็จรูปที่คุณไม่ต้องมานั่ง derive ใหม่ทุกครั้ง — pattern email แบบ pragmatic, URL ด้วย https?://, IPv4 dotted quad, ISO date อย่าง 2026-08-25, hex color และการจับคู่ HTML tag ด้วย backreference พวกมันคือจุดเริ่มต้น — ควรทดสอบกับข้อมูลจริงของคุณเสมอ
Use Cases ในการใช้งานจริง
ตรวจ Form Input
Form สมัครสมาชิกอยู่บน regex ทั้งนั้น — ช่อง email มักใช้ [\w.+-]+@[\w-]+\.[\w.]+, ช่องเบอร์โทรอาจเป็น ^\+?[\d\s()-]{7,15}$ และการเช็ครหัสผ่านระดับแข็งแรงผสม lookahead ได้แก่ (?=.*[a-z])(?=.*\d).{8,} ที่ต้องมีตัวพิมพ์เล็กอย่างน้อยหนึ่งตัว ตัวเลขหนึ่งตัว และยาวแปดตัวอักษรขึ้นไป หาชิ้นส่วนเหล่านี้จาก cheat sheet ประกอบเข้าด้วยกัน แล้วทดสอบ
ดึงและ Parse ข้อมูลจาก Log
Log line คือเหมืองทองของ regex — entry อย่าง 2026-08-25 14:32:01 ERROR Failed to connect ยอมจำนนต่อ ^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2}) (\w+) (.*)$ ได้ถึงสี่ capture groups สำหรับวันที่ เวลา ระดับ และข้อความ pattern IPv4 \d{1,3}(?:\.\d{1,3}){3} ดึง source address จาก firewall log และการผสม g กับ .*? แบบ non-greedy ช่วยไม่ให้การดึงหลาย field นั้น match เกินจำเป็น
Find-and-Replace ใน Editor
VS Code, IntelliJ และ Vim พูด regex ใน search panel กันทุกตัว อยากเปลี่ยน key แบบ snake_case เป็น camelCase? Search _(\w) แล้ว replace ด้วย \U$1 (syntax ต่างกันตาม editor) การ rename CSS class ทั้ง codebase โดยข้าม comment, จัดรูปแบบวันที่เป็นชุด, ลบบรรทัดว่างซ้ำ (\n{3,} → \n\n) — งานพวกนี้เป็นโจทย์ห้าวินาที เมื่อ pattern อยู่ใน clipboard ของคุณแล้ว
Data Extraction และ Cleaning
นักวิเคราะห์ข้อมูลเจอโจทย์เดียวกันนี้กับไฟล์ export CSV และ API dump — ดึง hex color ทั้งหมดจาก stylesheet ด้วย #?[0-9a-fA-F]{6}, normalize ช่องว่างด้วย \s+ ให้เหลือช่องเดียว หรือ split ข้อความอิสระเป็น token โดยใช้ \W+ เป็น delimiter และเพราะปุ่ม copy ของ cheat sheet รักษา escaping ไว้เป๊ะ pattern ที่วางไปจึงทำงานเหมือนตอนที่คุณทดสอบ
Best Practices
- ใช้ non-capturing group ((?:...)) เมื่อไม่ได้ต้องการ capture — เร็วกว่าและไม่ทำให้เลขลำดับ group เลื่อน
- ทดสอบกับข้อมูลจริงเสมอ — pattern ที่ผ่านกับ [email protected] อาจพังกับ edge case ที่ valid ลองรันผ่าน Regex Tester ด้วยข้อมูลที่หน้าตาเหมือน production
- ระวัง greedy matching — <.*> จะกื้อ entire line ของ HTML ทั้งหมด ส่วน <.*?> หยุดที่ bracket ปิดแรก เลือกใช้ lazy quantifier เมื่อ parse ข้อความที่มีโครงสร้าง
- Comment ให้ regex ที่ซับซ้อน — ใช้โหมด verbose/free-spacing ถ้า support หรืออย่างน้อยทิ้ง note ไว้ว่าแต่ละส่วน match อะไร — ตัวคุณเองในอนาคตจะขอบคุณ
- รู้จัก flavor ของคุณ — JavaScript, Python, PCRE และ Go ต่างกันที่ named-group syntax, การรองรับ lookbehind และ Unicode handling core syntax ใน cheat sheet นี้เป็นสากล แต่ขอบ ๆ ต่างกัน
- Escape สิ่งที่ตั้งใจจะใช้แบบ literal — ถ้าอยาก match ., +, ?, ( หรือ [ ในฐานะตัวอักขระ ต้อง escape มัน เพราะถ้าไม่ escape มันคือ operator และเมื่อฝัง user input ลงใน pattern ต้อง escape ให้ครบ
เริ่ม match ได้เลยวันนี้
ความชำนาญ regex ไม่ได้วัดกันที่การท่องจำ syntax แต่วัดกันที่มี reference อยู่ห่างปุ่มเดียว และรู้ว่าควรเอื้อมไปหมวดไหน Interactive Regex Cheat Sheet วางทั้ง 56 entries, เก้าหมวด, instant search และ one-click copy ไว้บนหน้าเดียวที่โหลดทันทีและไม่เคยขอให้คุณ login
เปิดมัน หา construct ที่คุณจำได้ครึ่ง ๆ กลาง ๆ กด copy แล้วกลับไปแก้โจทย์จริง — ตัวคุณเองในอนาคต (คนที่เคยเปิดแท็บ regex ไว้สิบเอ็ดแท็บ) จะสัมผัสได้ถึงความต่างภายในสัปดาห์เดียว
ขอให้สนุกกับการ match!
เครื่องมือที่เกี่ยวข้อง
- Regex Tester — ทดสอบ pattern กับข้อความจริงแบบ live
- Regex Generator — อธิบายเป็นภาษาคน ให้ tool สร้าง regex ให้
- Regex ReDoS Checker — ตรวจ catastrophic backtracking