กลับไปที่แดชบอร์ด

เครื่องมือทดสอบและดีบักเกอร์ Regex

การทดสอบนิพจน์ทั่วไปแบบสดพร้อมการเน้นด้วยภาพ

/ /
g

ผู้ทดสอบ Regex — ทดสอบและแก้ไขนิพจน์ทั่วไปแบบเรียลไทม์

นิพจน์ทั่วไป (regex) เป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดในคลังแสงของนักพัฒนา — และเป็นหนึ่งในเครื่องมือที่เป็นความลับที่สุด regex ที่สร้างขึ้นมาอย่างดีเพียงรายการเดียวสามารถแทนที่โค้ดแยกวิเคราะห์สตริงได้ 50 บรรทัด เครื่องมือทดสอบแบบเรียลไทม์ของเราช่วยให้คุณสร้าง ทดสอบ และทำความเข้าใจรูปแบบโดยไม่ต้องมีวงจรการแก้ไข-บันทึก-รันของ IDE ของคุณ

การอ้างอิงด่วนไวยากรณ์ Regex

ลวดลาย ไม้ขีด ตัวอย่าง
\\\\dตัวเลขใดๆ 0–9\\\\d{4}นัดปี 2024
\\\\wอักขระคำ (ตัวอักษร, ตัวเลข, _)\\\\w+ตรงกับ "hello_world"
^ / $เริ่มต้น/สิ้นสุดของสตริง^\\\\d{5}$จับคู่รหัสไปรษณีย์ 5 หลักเท่านั้น
[...]ตัวละครใดก็ได้ในชุด[อ้าว]ตรงกับสระใด ๆ
(?:...)กลุ่มไม่จับกลุ่มที่ไม่ได้บันทึกเพื่อจับภาพกลุ่ม
(?=...)มองไปข้างหน้าเชิงบวก\\\\w+(?=\\\\.com)ตรงกับโดเมนย่อย

5 รูปแบบ Regex ในโลกแห่งความเป็นจริงที่ควรค่าแก่การบุ๊กมาร์ก

  1. การตรวจสอบอีเมล์: /^[\\\\w.-]+@[\\\\w.-]+\\\\.[a-z]{2,}$/i
  2. หมายเลขโทรศัพท์ของสหรัฐอเมริกา: /^(\\\\+1)?[\\\\s.-]?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$/
  3. การแยก URL: /https?:\\\\/\\\\/[^\\\\s"']+/g
  4. การตรวจสอบรหัสผ่านที่แข็งแกร่ง: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$/
  5. ลบช่องว่างเพิ่มเติม: /\\\\s+/กแทนที่ด้วยช่องว่างเดียว

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

แฟล็ก g, i, m ทำหน้าที่อะไร?

(ทั่วโลก): ค้นหารายการที่ตรงกันทั้งหมด ไม่ใช่แค่รายการแรกฉัน: ไม่คำนึงถึงขนาดตัวพิมพ์(หลายบรรทัด): ^ และ $ จับคู่ขอบเขตบรรทัดแทนขอบเขตสตริง

เหตุใด regex ของฉันจึงทำงานที่นี่ แต่ไม่ใช่ใน Python

ผู้ทดสอบนี้ใช้เครื่องมือ regex ของ JavaScript หลามอีกครั้งโมดูลมีความแตกต่างทางไวยากรณ์เล็กน้อย โดยเฉพาะอย่างยิ่ง Python ใช้(?P<ชื่อ>...)สำหรับกลุ่มที่มีชื่อ ในขณะที่ JavaScript ใช้(?<ชื่อ>...).

อะไรทำให้เกิดการย้อนรอยหายนะ?

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