ทดสอบ RegEx

ทดสอบและดีบักนิพจน์ทั่วไป (Regular Expressions) แบบเรียลไทม์ พร้อมไฮไลต์ผลการจับคู่

ทดสอบ RegEx

ทดสอบและดีบักนิพจน์ทั่วไป (Regular Expressions) แบบเรียลไทม์ พร้อมไฮไลต์ผลการจับคู่

วิธีการทำงาน

1
Enter or Paste Text
Type or paste your text, code, or data directly into the input workspace.
2
Apply Transformation
Run the tool to convert, filter, format, or inspect your text content.
3
Copy Output
Copy the clean processed output to your clipboard with a single click.
ศูนย์ความรู้และแนวคิด

เครื่องมือทดสอบ Regular Expression ไฮไลต์ผลการจับคู่และตรวจสอบ Flag แบบเรียลไทม์

Regular Expression (RegEx) เป็นเครื่องมือสำคัญในการค้นหา ตรวจสอบความถูกต้องของข้อมูล และตัดแต่งข้อความในงานพัฒนาซอฟต์แวร์ เครื่องมือทดสอบ RegEx นี้ช่วยให้นักพัฒนาทดสอบรูปแบบนิพจน์เรกูลาร์กับข้อความตัวอย่างได้แบบเรียลไทม์ พร้อมไฮไลต์จุดที่จับคู่ได้ทันที แสดงกลุ่มที่ดักจับได้ (Capture Groups) และแจ้งเตือนข้อผิดพลาดทางไวยากรณ์

รองรับการปรับแต่ง Flag มาตรฐานครบถ้วน ทั้ง g (ค้นหาทั้งหมด), i (ไม่สนใจตัวพิมพ์เล็กใหญ่), m (ขึ้นบรรทัดใหม่), และ s (dotAll ให้จุดรวมอักขระขึ้นบรรทัดใหม่) ทำงานผ่านเอนจิน RegEx ดั้งเดิมของเบราว์เซอร์ ประมวลผลในเครื่อง 100% ปลอดภัยต่อข้อมูลข้อความที่นำมาทดสอบ

In-Depth Technical Guide

ทำไม RegEx ถึงจับคู่ข้อความไม่ตรง? เจาะลึก Regex Flags โหมด Multiline และการ Escape อักขระพิเศษ

ไขข้อข้องใจเมื่อ Regular Expression ทำงานไม่ตรงตามที่คาดหวัง อธิบายความแตกต่างของแฟล็ก g, m, s, i พฤติกรรมของแองเคอร์ ^ และ $ ในโหมด Multiline และการหลบอักขระพิเศษ (Escaping)

Read Comprehensive Guide →

สูตรและหลักการทางเทคนิค

การประเมิน RegExp: /pattern/flags ➔ RegExp.prototype.exec() / matchAll() ➔ ไฮไลต์ตำแหน่งและดักจับกลุ่ม

คอมไพล์รูปแบบนิพจน์เรกูลาร์เข้าสู่เอนจิน JavaScript ของเบราว์เซอร์ คำนวณดัชนีจุดเริ่มต้นและจุดสิ้นสุดของการจับคู่ พร้อมสกัดค่าในกลุ่มย่อย

ข้อแนะนำและวิธีปฏิบัติที่ถูกต้อง

  • ระวังปัญหา Catastrophic Backtracking (ReDoS): หลีกเลี่ยงการใช้ Quantifier ซ้อนกัน เช่น (a+)+ หรือทางเลือกที่ทับซ้อนกัน ซึ่งอาจทำให้เบราว์เซอร์ค้างเมื่อเจอข้อความที่ไม่ตรงเงื่อนไข
  • เลือกใช้ RegEx Flags ให้เหมาะสมกับงาน: กำหนดแฟล็ก g เมื่อต้องการผลลัพธ์ทั้งหมด แฟล็ก i เพื่อตัดปัญหาตัวพิมพ์ และแฟล็ก m เพื่อให้ ^ และ $ จับคู่ต้นและท้ายของแต่ละบรรทัด
  • ใส่เครื่องหมาย Escape ให้กับอักขระพิเศษเมื่อค้นหาแบบตรงตัว: เมื่อต้องการค้นหาเครื่องหมายจุด วงเล็บ หรือดอกจันแบบตรงตัว ให้เติมแบ็กสแลช (\., \[, \*) ไว้ข้างหน้าเสมอ
  • ใช้ Non-Capturing Groups เพื่อเพิ่มประสิทธิภาพ: เมื่อต้องการจัดกลุ่มเงื่อนไขโดยไม่ต้องการสกัดค่านั้นออกมา ให้ใช้ไวยากรณ์ (?:...) เพื่อลดการใช้หน่วยความจำ

คำถามที่พบบ่อย (FAQ)

Regular Expression Denial of Service (ReDoS) เกิดขึ้นได้อย่างไร?
เกิดจากรูปแบบ RegEx ที่มีโครงสร้างซ้อนกันแบบคลุมเครือ ทำให้เอนจินต้องคำนวณแบบย้อนกลับ (Backtracking) ซ้ำซ้อนแบบเอ็กซ์โพเนนเชียลเมื่อข้อความไม่ตรงกับเงื่อนไข ส่งผลให้ซีพียูทำงานหนักจนระบบค้าง
กลุ่มจับคู่แบบตั้งชื่อ (Named Capture Groups) ใช้งานอย่างไร?
สามารถใช้ไวยากรณ์ (?<name>pattern) เพื่อตั้งชื่อให้กับกลุ่มที่จับคู่ได้ ทำให้สามารถเข้าถึงผลลัพธ์ผ่านชื่อกลุ่มได้อย่างชัดเจนแทนที่จะอ้างอิงด้วยหมายเลขดัชนี
เครื่องมือนี้ใช้เอนจิน RegEx ใดในการประมวลผล?
ทำงานผ่านเอนจิน JavaScript มาตรฐานของเว็บเบราว์เซอร์ของคุณ (เช่น V8 ใน Chrome/Edge หรือ SpiderMonkey ใน Firefox) ทำให้ผลการจับคู่ตรงกับโค้ดฝั่งเว็บอย่างแน่นอน
ข้อความหรือรูปแบบที่ทดสอบจะถูกบันทึกไว้หรือไม่?
ไม่มีการบันทึกหรือส่งข้อมูลใดๆ ทุกอย่างทำงานในหน่วยความจำของแท็บเบราว์เซอร์ปัจจุบันเท่านั้น