ข้ามไปยังเนื้อหา

ทดสอบ Regex

ทดสอบ regular expression แบบสด ดูผลที่ตรงกัน กลุ่มที่จับได้ และการแทนที่

กำลังโหลดเครื่องมือ…

ป้อนนิพจน์ปกติ (regex) และข้อความทดสอบ แล้วดูส่วนที่ตรงกันถูกไฮไลต์ทันที พร้อมตำแหน่งและค่าของกลุ่มในแต่ละรายการ ใช้ตรวจว่ารูปแบบจับสิ่งที่คาดไว้จริง และการแทนที่ให้ผลถูกต้อง ก่อนนำไปใส่ในโค้ด

วิธีใช้

  1. พิมพ์นิพจน์ใน "รูปแบบ (Pattern)" โดยไม่ต้องใส่เครื่องหมายทับ และกดปุ่มแฟล็ก เช่น g, i หรือ m เพื่อเปิดหรือปิด
  2. ใส่ข้อความใน "ข้อความทดสอบ" ส่วนที่ตรงกันจะถูกไฮไลต์ และแท็บ "ค้นหา" จะแสดงตำแหน่งและกลุ่มของแต่ละรายการ
  3. ในแท็บ "แทนที่" พิมพ์หมายเลขกลุ่ม เช่น $1 ใน "แทนที่ด้วย" เพื่อดูผลลัพธ์ ส่วน "แยก" จะแสดงส่วนที่อยู่ระหว่างรายการที่ตรงกัน
  4. เลือกตัวอย่างใน "รูปแบบที่ใช้บ่อย" หรือเปิด "สรุปไวยากรณ์" เพื่อดูความหมายของสัญลักษณ์ "คัดลอกลิงก์สำหรับแชร์" ช่วยให้คนอื่นเปิดรูปแบบและข้อความเดียวกันได้

หลักการทำงาน

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

ทำไม regex ของฉันเจอแค่รายการแรก
หากไม่มีแฟล็ก g จะเจอเฉพาะรายการแรก ให้เปิดปุ่ม g เพื่อค้นหาทุกรายการ
จะใช้ capture group ในการแทนที่ด้วย regex ได้อย่างไร
$1 และ $2 คือกลุ่มตามหมายเลข และ $& คือส่วนที่ตรงกันทั้งหมด กลุ่มที่มีชื่อเขียนเป็น $ ตามด้วยชื่อในวงเล็บมุม การแทนที่ (\d{4})-(\d{2})-(\d{2}) ด้วย $3.$2.$1 จะเปลี่ยน 2024-03-15 เป็น 15.03.2024
regex สำหรับอีเมลเขียนอย่างไร
ตัวอย่าง "อีเมล (แบบง่าย)" คือ [\w.+-]+@[\w-]+(?:\.[\w-]+)+ ซึ่งจับที่อยู่อีเมลทั่วไปได้ แต่ไม่ได้ตรวจทุกกฎของมาตรฐานอีเมล
regex ของ JavaScript เหมือนกับของ Python หรือ Java หรือไม่
ไวยากรณ์พื้นฐานส่วนใหญ่เหมือนกัน แต่รายละเอียดต่างกัน เช่น กลุ่มที่มีชื่อใน JavaScript ขึ้นต้นด้วย (?< แต่ใน Python ขึ้นต้นด้วย (?P<
"หยุดหลังจาก 1 วินาที" หมายความว่าอะไร
รูปแบบที่มี quantifier ซ้อนกัน เช่น (a+)+ อาจลองชุดค่าผสมจำนวนมหาศาลกับข้อความที่ไม่ตรงกัน ให้ทำส่วนด้านในให้เจาะจงขึ้นหรือเลิกซ้อนกัน