ผู้ทดสอบ Regex — ทดสอบและแก้ไขนิพจน์ทั่วไปแบบเรียลไทม์
นิพจน์ทั่วไป (regex) เป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดในคลังแสงของนักพัฒนา — และเป็นหนึ่งในเครื่องมือที่เป็นความลับที่สุด regex ที่สร้างขึ้นมาอย่างดีเพียงรายการเดียวสามารถแทนที่โค้ดแยกวิเคราะห์สตริงได้ 50 บรรทัด เครื่องมือทดสอบแบบเรียลไทม์ของเราช่วยให้คุณสร้าง ทดสอบ และทำความเข้าใจรูปแบบโดยไม่ต้องมีวงจรการแก้ไข-บันทึก-รันของ IDE ของคุณ
การอ้างอิงด่วนไวยากรณ์ Regex
| ลวดลาย | ไม้ขีด | ตัวอย่าง |
|---|---|---|
\\\\d | ตัวเลขใดๆ 0–9 | \\\\d{4}นัดปี 2024 |
\\\\w | อักขระคำ (ตัวอักษร, ตัวเลข, _) | \\\\w+ตรงกับ "hello_world" |
^ / $ | เริ่มต้น/สิ้นสุดของสตริง | ^\\\\d{5}$จับคู่รหัสไปรษณีย์ 5 หลักเท่านั้น |
[...] | ตัวละครใดก็ได้ในชุด | [อ้าว]ตรงกับสระใด ๆ |
(?:...) | กลุ่มไม่จับ | กลุ่มที่ไม่ได้บันทึกเพื่อจับภาพกลุ่ม |
(?=...) | มองไปข้างหน้าเชิงบวก | \\\\w+(?=\\\\.com)ตรงกับโดเมนย่อย |
5 รูปแบบ Regex ในโลกแห่งความเป็นจริงที่ควรค่าแก่การบุ๊กมาร์ก
- การตรวจสอบอีเมล์:
/^[\\\\w.-]+@[\\\\w.-]+\\\\.[a-z]{2,}$/i - หมายเลขโทรศัพท์ของสหรัฐอเมริกา:
/^(\\\\+1)?[\\\\s.-]?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$/ - การแยก URL:
/https?:\\\\/\\\\/[^\\\\s"']+/g - การตรวจสอบรหัสผ่านที่แข็งแกร่ง:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$/ - ลบช่องว่างเพิ่มเติม:
/\\\\s+/กแทนที่ด้วยช่องว่างเดียว
คำถามที่พบบ่อย
แฟล็ก g, i, m ทำหน้าที่อะไร?
ก(ทั่วโลก): ค้นหารายการที่ตรงกันทั้งหมด ไม่ใช่แค่รายการแรกฉัน: ไม่คำนึงถึงขนาดตัวพิมพ์ม(หลายบรรทัด): ^ และ $ จับคู่ขอบเขตบรรทัดแทนขอบเขตสตริง
เหตุใด regex ของฉันจึงทำงานที่นี่ แต่ไม่ใช่ใน Python
ผู้ทดสอบนี้ใช้เครื่องมือ regex ของ JavaScript หลามอีกครั้งโมดูลมีความแตกต่างทางไวยากรณ์เล็กน้อย โดยเฉพาะอย่างยิ่ง Python ใช้(?P<ชื่อ>...)สำหรับกลุ่มที่มีชื่อ ในขณะที่ JavaScript ใช้(?<ชื่อ>...).
อะไรทำให้เกิดการย้อนรอยหายนะ?
รูปแบบเหมือน(ก+)+ใช้กับสตริงที่ไม่ตรงกันขนาดยาวทำให้เกิดความซับซ้อนของเวลาแบบเอกซ์โปเนนเชียล ใช้กลุ่มอะตอมหรือปริมาณที่เป็นเจ้าของในเครื่องยนต์ที่รองรับ หรือปรับโครงสร้างรูปแบบใหม่เพื่อหลีกเลี่ยงการซ้ำซ้อน