ทดสอบ Regex
ทดสอบ regular expression แบบสด ดูผลที่ตรงกัน กลุ่มที่จับได้ และการแทนที่
กำลังโหลดเครื่องมือ…
ป้อนนิพจน์ปกติ (regex) และข้อความทดสอบ แล้วดูส่วนที่ตรงกันถูกไฮไลต์ทันที พร้อมตำแหน่งและค่าของกลุ่มในแต่ละรายการ ใช้ตรวจว่ารูปแบบจับสิ่งที่คาดไว้จริง และการแทนที่ให้ผลถูกต้อง ก่อนนำไปใส่ในโค้ด
วิธีใช้
- พิมพ์นิพจน์ใน "รูปแบบ (Pattern)" โดยไม่ต้องใส่เครื่องหมายทับ และกดปุ่มแฟล็ก เช่น g, i หรือ m เพื่อเปิดหรือปิด
- ใส่ข้อความใน "ข้อความทดสอบ" ส่วนที่ตรงกันจะถูกไฮไลต์ และแท็บ "ค้นหา" จะแสดงตำแหน่งและกลุ่มของแต่ละรายการ
- ในแท็บ "แทนที่" พิมพ์หมายเลขกลุ่ม เช่น $1 ใน "แทนที่ด้วย" เพื่อดูผลลัพธ์ ส่วน "แยก" จะแสดงส่วนที่อยู่ระหว่างรายการที่ตรงกัน
- เลือกตัวอย่างใน "รูปแบบที่ใช้บ่อย" หรือเปิด "สรุปไวยากรณ์" เพื่อดูความหมายของสัญลักษณ์ "คัดลอกลิงก์สำหรับแชร์" ช่วยให้คนอื่นเปิดรูปแบบและข้อความเดียวกันได้
หลักการทำงาน
- การจับคู่ใช้เอนจิน RegExp ของ JavaScript ในเบราว์เซอร์ของคุณ ผลลัพธ์จึงเหมือนกับในโค้ด JavaScript
- การจับคู่ทำงานใน worker เบื้องหลังแยกต่างหากและหยุดหลังจาก 1 วินาที ค้นหาได้สูงสุด 10,000 รายการ และรายการจะแสดง 500 รายการแรก
- สิ่งที่คุณพิมพ์จะไม่ถูกบันทึก ลิงก์สำหรับแชร์จะเก็บรูปแบบและข้อความ (4,000 อักขระแรก) ไว้ในตัวลิงก์เอง ไม่มีการอัปโหลดใด ๆ
คำถามที่พบบ่อย
- ทำไม 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+)+ อาจลองชุดค่าผสมจำนวนมหาศาลกับข้อความที่ไม่ตรงกัน ให้ทำส่วนด้านในให้เจาะจงขึ้นหรือเลิกซ้อนกัน