นักพัฒนา

เครื่องทดสอบ Regex

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

เครื่องมือนี้ช่วยคุณได้ไหม?

เครื่องทดสอบ Regex คืออะไร?

Regex Tester เป็นเครื่องมือพัฒนาที่จำเป็นซึ่งช่วยให้คุณทดสอบนิ RegExp กับข้อความตัวอย่างแบบเรียลไทม์ ให้ผลป้อนกลับแบบทันทีว่ารูปแบบของคุณตรงกันหรือไม่ RegExp หรือที่เรียกกันทั่วไปว่า regex เป็นรูปแบบที่ทรงพลังซึ่งใช้สำหรับการค้นหา การตรวจสอบความถูกต้อง การแยกข้อมูล และการจัดการข้อความในแทบทุกภาษาโปรแกรมมิ่งและโปรแกรมแก้ไขข้อความ เครื่องมือนี้ช่วยให้คุณเขียนรูปแบบ regex และวางข้อความทดสอบ แล้วดูการจับคู่ทั้งหมดที่เน้นทันทีพร้อมตำแหน่ง เนื้อหากลุ่มจับ และจำนวนการจับคู่ เหมาะสำหรับการตรวจสอบอีเมลและหมายเลขโทรศัพท์ การแยกวันที่และราคาจากข้อความที่ไม่มีโครงสร้าง การสร้างรูปแบบค้นหาและแทนที่ในฐานโค้ด และการเรียนรู้ syntax regex

เมื่อไหร่ควรใช้เครื่องคำนวณนี้

  • ตรวจสอบอินพุตของผู้ใช้ในฟอร์มเว็บ
  • ดีบักการจับคู่ที่ล้มเหลว
  • เรียนรู้ syntax regex แบบโต้ตอบ
  • แยกข้อมูลเฉพาะจากข้อความ
  • สร้างรูปแบบค้นหาและแทนที่
  • ตรวจสอบความถูกต้องของฟอร์ม

ขั้นตอน:

  1. ป้อนรูปแบบ regex ของคุณในช่องป้อนรูปแบบโดยใช้ไวยากรณ์ regex มาตรฐาน — ตัวอย่างเช่น \d{3}-\d{4} เพื่อจับคู่หมายเลขโทรศัพท์ หรือ ^[\w.-]+@[\w.-]+\.\w{2,}$ สำหรับการตรวจสอบอีเมล
  2. เลือก flag ที่เหมาะสม
  3. พิมพ์หรือวางข้อความทดสอบ
  4. ตรวจสอบแผงผลลัพธ์
  5. ใช้แผงสรุป

สูตร

รูปแบบ + แฟล็ก → RegExp → ดำเนินการกับข้อความทดสอบ → อาร์เรย์ของการจับคู่ รูปแบบทั่วไป: - \d+ → ตัวเลขหนึ่งตัวขึ้นไป - [a-zA-Z]+ → ตัวอักษรหนึ่งตัวขึ้นไป - ^…$ → จุดยึดจุดเริ่มต้น/สิ้นสุด - (…) → กลุ่มจับภาพ

กรณีใช้งาน

  • การตรวจสอบที่อยู่อีเมล หมายเลขโทรศัพท์ URL
  • การดึงรูปแบบจากข้อความ (วันที่ ราคา ID)
  • การดำเนินการค้นหาและแทนที่ในโปรแกรมแก้ไขข้อความ
  • การตรวจสอบข้อมูลนำเข้าในแบบฟอร์มเว็บ

ประโยชน์หลัก

  • ทดสอบรูปแบบ regex ทันทีเน้นแบบเรียลไทม์
  • ดูการจับคู่ทั้งหมดพร้อมตำแหน่งและกลุ่มจับ
  • รองรับ flag regex ทั้งหมด
  • สรุป regex ในตัว
  • ทำงานในเบราว์เซอร์
  • ฟรีไม่ต้องลงทะเบียน

เคล็ดลับ

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

ข้อผิดพลาดที่พบบ่อย

  • ลืม escape อักขระพิเศษ
  • ละเว้น flag ทั่วโลก (g)
  • ใช้ quantifier โลภเมื่อต้องการแบบขี้เกียจ
  • ไม่ทดสอบกรณีขอบ

คำศัพท์สำคัญ

รูปแบบ: นิพจน์ค้นหาที่เขียนด้วย syn {3} {4} tax regex
Flag: ตัวเลือกที่แก้ไขพฤติกรรม
การจับคู่: เหตุการณ์ที่ประสบความสำเร็จของรูปแบบ
กลุ่มจับ: ส่วนของรูปแบบที่อยู่ในวงเล็บ
Quantifier: ตัวอักษรที่ระบุว่าองค์ประกอบก่อนหน้าจะเ {n} กิดขึ้นกี่ครั้ง

แนวคิดที่เกี่ยวข้อง

  • นิพจน์ทั่วไป (Regex): ลำดับอักขระที่กำหนดรูปแบบการค้นหาสำหรับจับคู่ข้อความ
  • กลุ่มจับภาพ: ส่วนในวงเล็บของ regex ที่ดึงส่วนเฉพาะของการจับคู่
  • ตัวระบุปริมาณ: อักขระที่ระบุจำนวนครั้งที่องค์ประกอบก่อนหน้าต้องปรากฏ (เช่น +, *, ?, {n})
  • จุดยึด: การยืนยันความกว้างเป็นศูนย์ที่จับคู่ตำแหน่งในข้อความแทนที่จะเป็นอักขระ (^ สำหรับจุดเริ่มต้น $ สำหรับจุดสิ้นสุด)
  • Lookahead/Lookbehind: การยืนยันความกว้างเป็นศูนย์ที่ตรวจสอบรูปแบบก่อนหรือหลังตำแหน่งปัจจุบันโดยไม่ใช้ข้อความ

ตัวอย่าง

รูปแบบ: ^[\w.-]+@[\w.-]+\.\w{2,}$ กับข้อความทดสอบ: "ติดต่อเราที่ [email protected] หรือ [email protected]" จับคู่ที่อยู่อีเมลทั้งสองและแสดงในรายการผลลัพธ์

การตีความผลลัพธ์

เริ่มจากดูจำนวนการจับคู่และข้อความที่เน้น หากคุณคาดหวังการจับคู่แต่ไม่เห็น ให้ตรวจสอบ: (1) Flag ทั่วโลก (g) ตั้งค่าหรือไม่? (2) คุณ escape อักขระพิเศษถูกต้องหรือไม่? (3) สมอของคุณถูกต้องหรือไม่? แผงกลุ่มจับแสดงว่าส่วนใดของรูปแบบจับได้

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

นิพจน์ทั่วไปคืออะไร?
Regex คือลำดับอักขระที่กำหนดรูปแบบการค้นหา ใช้สำหรับการจับคู่รูปแบบในข้อความ เช่น การค้นหาที่อยู่อีเมล การตรวจสอบความถูกต้องของข้อมูลนำเข้า หรือการดึงข้อมูลจากสตริง
เครื่องมือนี้ใช้เอนจิน regex ตัวใด?
เครื่องมือนี้ใช้เอนจิน RegExp ในตัวของ JavaScript ซึ่งรองรับคุณสมบัติ regex มาตรฐานส่วนใหญ่ รวมถึงกลุ่ม, lookahead, ตัวระบุปริมาณ และคลาสอักขระ
แฟล็ก regex ทั่วไปมีอะไรบ้าง?
g (ทั่วโลก): ค้นหาการจับคู่ทั้งหมด ไม่ใช่แค่รายการแรก i (ไม่สนใจตัวพิมพ์ใหญ่-เล็ก): ไม่สนใจตัวพิมพ์ m (หลายบรรทัด): ^ และ $ จับคู่กับขอบเขตบรรทัด s (dotall): . จับคู่กับตัวขึ้นบรรทัดใหม่ด้วย
ทำไม regex ของฉันไม่พบการจับคู่?
ปัญหาทั่วไป: ขาดแฟล็ก g สำหรับการจับคู่หลายรายการ อักขระพิเศษไม่ได้ escape (., *, +, ?, [, ], (, )) หรือการใช้ตัวระบุปริมาณผิดพลาด
นิพจน์ทั่วไป (regex) คืออะไร?
นิพจน์ทั่วไป (regex) คือรูปแบบที่ใช้จับคู่การรวมกันของอักขระในสตริง เป็นเครื่องมือที่ทรงพลังสำหรับการค้นหา การตรวจสอบ และการจัดการข้อความ Regex ใช้อักขระพิเศษ เช่น . * + ? ^ $ [] () {} | เพื่อกำหนดรูปแบบ
สัญลักษณ์ ^ ใน regex หมายความว่าอย่างไร?
ใน regex, ^ มีความหมายสองอย่าง: ภายในคลาสอักขระ [^abc] หมายถึง 'ไม่ใช่' (การปฏิเสธ) นอกคลาสอักขระ มันจะยึดรูปแบบไว้ที่จุดเริ่มต้นของสตริง ตัวอย่างเช่น ^hello จะจับคู่กับ 'hello' เฉพาะที่จุดเริ่มต้นของสตริงเท่านั้น
ความแตกต่างระหว่าง * และ + ใน regex คืออะไร?
ทั้งสองเป็นตัวระบุปริมาณ: * จับคู่ศูนย์ครั้งขึ้นไป (ทางเลือก) ในขณะที่ + จับคู่หนึ่งครั้งขึ้นไป (จำเป็น) ดังนั้น 'ab*c' จะจับคู่กับ 'ac', 'abc', 'abbc' ฯลฯ ในขณะที่ 'ab+c' จับคู่กับ 'abc', 'abbc' แต่ไม่จับคู่กับ 'ac'
ฉันจะจับคู่จุด (.) ตามตัวอักษรใน regex ได้อย่างไร?
จุด (.) เป็นอักขระพิเศษที่หมายถึง 'อักขระใดก็ได้' หากต้องการจับคู่จุดตามตัวอักษร ให้ escape ด้วยเครื่องหมายทับกลับ: \. ตัวอย่างเช่น รูปแบบ www\.example\.com จะจับคู่กับ URL นั้นพอดี ไม่ใช่ 'wwwXexampleYcom'
กลุ่มจับภาพคืออะไร?
กลุ่มจับภาพคือส่วนของ regex ที่อยู่ในวงเล็บ () โดยจะ 'จับภาพ' ข้อความที่ตรงกันเพื่อใช้งานในภายหลัง ตัวอย่างเช่น (\d{4})-(\d{2})-(\d{2}) จะจับภาพปี เดือน และวันแยกกันจากสตริงวันที่ เช่น 2024-01-15
ความแตกต่างระหว่างการจับคู่แบบ greedy และ lazy คืออะไร?
ตัวระบุปริมาณแบบ greedy (* + ? {}) จะจับคู่ข้อความให้มากที่สุดเท่าที่จะทำได้ ตัวระบุปริมาณแบบ lazy (*? +? ?? {}) จะจับคู่ข้อความให้น้อยที่สุดเท่าที่จะทำได้ ตัวอย่างเช่น <.*> จะจับคู่กับ '<div>เนื้อหา</div>' ทั้งหมด (greedy) ในขณะที่ <.*?> จะจับคู่กับ '<div>' และ '</div>' แยกกัน (lazy)
ฉันจะตรวจสอบอีเมลด้วย regex ได้อย่างไร?
รูปแบบอีเมลพื้นฐาน: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ รูปแบบนี้จับคู่กับอีเมลที่ถูกต้องส่วนใหญ่ แต่ไม่ครอบคลุมทุกกรณีขอบเขต สำหรับการใช้งานจริง ควรพิจารณาใช้ไลบรารีตรวจสอบอีเมลเฉพาะที่จัดการโดเมนนานาชาติและอักขระพิเศษ

ค้นพบเครื่องมือเพิ่มเติม

คัดสรรใหม่จากคลังเครื่องมือทั้งหมดของเรา