ไม่มีการอัปโหลด, 100% ในเครื่อง, ไม่มีบัญชี

ทดสอบ Regex

ใส่รูปแบบ เลือกแฟล็ก และทดสอบกับข้อความของคุณ ผลลัพธ์จะถูกไฮไลต์แบบอินไลน์ กลุ่มการจับคู่จะแสดงรายการต่อผลลัพธ์แต่ละรายการ ไม่มีข้อมูลออกจากเบราว์เซอร์

ทดสอบ Regex ทำงานอย่างไร

เครื่องมือทดสอบ regex ให้คุณเขียน regular expression แบบ JavaScript วางข้อความตัวอย่าง และดูผลลัพธ์ที่ไฮไลต์แบบเรียลไทม์ กลุ่มจับภาพจะแสดงในตารางใต้ข้อความ ช่วยให้คุณตรวจสอบค่าที่จับได้โดยไม่ต้องรันสคริปต์ใดๆ รองรับ flag ได้แก่ g (global), i (case-insensitive), m (multiline), s (dotAll), u (Unicode) และ y (sticky) ทุกสิ่งที่คุณพิมพ์จะไม่ออกจากอุปกรณ์ของคุณ เพราะ matching engine คือ JavaScript runtime ที่ฝังอยู่ในแท็บเบราว์เซอร์ของคุณโดยตรง ไม่ใช่เซิร์ฟเวอร์

ในเชิงเทคนิค เครื่องมือนี้เรียกใช้ constructor มาตรฐาน ECMAScript RegExp ด้วย pattern และ flag ที่คุณระบุ จากนั้นใช้ string matchAll iterator เพื่อรวบรวม Match objects ทั้งหมด ตารางกลุ่มจับภาพสร้างขึ้นจาก objects เหล่านั้นโดยตรง ดังนั้นสิ่งที่คุณเห็นคือผลลัพธ์เดียวกับที่ Node.js หรือเบราว์เซอร์จะคืนกลับมาในโค้ดจริง โดยไม่มีชั้นการแปลแทรกกลาง

วิธีใช้ ทดสอบ Regex ทีละขั้นตอน

  1. พิมพ์หรือวาง regular expression ลงในช่อง pattern
  2. เปิดหรือปิด flag ที่ต้องการ (g, i, m, s, u, y) ผ่านช่องทำเครื่องหมาย
  3. วางข้อความที่ต้องการทดสอบลงในพื้นที่ตัวอย่าง
  4. ตรวจสอบคำที่จับคู่ได้ที่ไฮไลต์ในข้อความ และดูตารางกลุ่มจับภาพด้านล่าง
  5. ปรับแก้ pattern และดูผลลัพธ์อัปเดตแบบสด

กรณีการใช้งานที่พบบ่อย

  • ตรวจสอบว่า pattern การดึงอีเมลจัดการกรณีขอบเขต เช่น plus-addressing ได้ถูกต้องก่อนนำไปใช้ใน data pipeline
  • แก้ไขบั๊ก named capture group สำหรับการแยกวิเคราะห์บรรทัด log โดยเทียบค่าแต่ละกลุ่มกับตัวอย่าง log จริง
  • ยืนยันว่า regex จับคู่ URL ที่มี flag u จัดการชื่อโดเมน Unicode ได้ถูกต้องก่อนเพิ่มลงใน router
  • ทดสอบ pattern ค้นหาและแทนที่แบบโต้ตอบเพื่อตรวจสอบว่าไม่มีการจับคู่แบบ greedy ที่ไม่ตั้งใจในไฟล์ config ขนาดใหญ่

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

สิ่งที่ฉันพิมพ์จะถูกส่งไปยังเซิร์ฟเวอร์หรือไม่

ไม่ การจับคู่ทำงานทั้งหมดภายในแท็บเบราว์เซอร์นี้โดยใช้ RegExp engine ของ JavaScript ในตัว Pattern, flag และข้อความตัวอย่างของคุณจะไม่ถูกส่งไปที่ใดเลย ลองเปิด DevTools แล้วดูแท็บ Network ขณะพิมพ์ จะไม่มีคำขอออกไปแม้แต่รายการเดียว

เครื่องมือนี้ใช้ regex แบบใด

ECMAScript (ES2022+) ตามที่เบราว์เซอร์ของคุณนำไปใช้งาน ซึ่งเป็น flavor เดียวกับที่ใช้ใน Node.js, Deno และเบราว์เซอร์สมัยใหม่ ฟีเจอร์เฉพาะของ PCRE เช่น lookbehind แบบความยาวผันแปรหรือ possessive quantifier ไม่รองรับ แม้ว่า pattern ทั่วไปส่วนใหญ่จะทำงานได้เหมือนกัน

ทำไมฉันถึงได้รับข้อผิดพลาดเกี่ยวกับ regular expression ที่ไม่ถูกต้อง

RegExp constructor ของเบราว์เซอร์จะโยน SyntaxError สำหรับ pattern ที่ไม่ใช่ ECMAScript regex ที่ถูกต้อง สาเหตุที่พบบ่อย ได้แก่ backslash ที่ไม่ถูก escape, กลุ่มที่ไม่ปิด หรือการใช้ Unicode property escape (\p{...}) โดยไม่มี flag u

ตารางกลุ่มจับภาพแสดงอะไร

สำหรับทุกคู่ที่พบ (ภายใต้ flag g) ตารางจะแสดงคู่ที่ตรงทั้งหมด จากนั้นแต่ละกลุ่มที่มีหมายเลขหรือชื่อตามลำดับ กลุ่มที่มีชื่อจะแสดงชื่อเป็น header ของคอลัมน์ กลุ่มที่ไม่ได้เข้าร่วมการจับคู่จะแสดงเป็นช่องว่าง

ฉันสามารถทดสอบ pattern ที่ใช้ lookbehind ได้หรือไม่

ได้ ตราบใดที่ lookbehind เป็นแบบความยาวคงที่หรือผันแปรที่เบราว์เซอร์ของคุณรองรับ Chrome และ Firefox รองรับ variable-length lookbehind ตั้งแต่ปี 2020 และ Safari เพิ่มการรองรับในปี 2022 หากเบราว์เซอร์ของคุณทันสมัย ควรทำงานได้

เครื่องมือยังทำงานได้หากฉันออฟไลน์กลางเซสชันหรือไม่

ได้ หลังจากโหลดหน้าแล้ว การจับคู่ทุกรายการจะคำนวณในเครื่องโดย JavaScript engine ของเบราว์เซอร์โดยไม่ต้องพึ่งเครือข่าย การตัดการเชื่อมต่อจะไม่หยุดการทดสอบ