ประเด็นสำคัญ
- 01ตัวทดสอบใช้เอนจิน JavaScript RegExp ของเบราว์เซอร์ดั้งเดิม ดังนั้นผลลัพธ์จึงตรงกันว่า Node.js หรือเบราว์เซอร์สมัยใหม่จะสร้างผลลัพธ์ในการผลิต
- 02ธง JavaScript ทั้งหกตัว (g, i, m, s, y, u) พร้อมใช้งานแยกกัน
- 03แม่แบบการแทนที่สนับสนุน $1, $2, $& และ $$ สำหรับการแสดงตัวอย่างการแทนที่อันทรงพลัง
- 04ไม่มีอะไรส่งไปยังเซิร์ฟเวอร์ — รูปแบบและสตริงการทดสอบอยู่ในเบราว์เซอร์ของคุณทั้งหมด
เหตุใดตัวทดสอบ Regex โปรแกรม Dedicated จึงเอาชนะ IDE ของคุณ
นิพจน์ทั่วไปนั้นมีประสิทธิภาพ แต่ยากต่อการอ่านในทันที แม้แต่นักพัฒนาที่มีประสบการณ์ก็พบกับสิ่งที่น่าประหลาดใจ: จุดที่กินเส้นใหม่ ตัวบ่งชี้โลภที่ใช้เวลาเกินไป หรือกลุ่มจับการแสดงที่ปิดลง ตัวทดสอบเฉพาะจะเอาออกรหัสโดยรอบเพื่อให้คุณสามารถวนซ้ำรูปแบบและสตริงการป้อนข้อมูลที่ครั้งเดียว
ตัวทดสอบ regex ของ Handytool ประเมินรูปแบบด้วยเอนจิน ECMAScript RegExp ของเบราว์เซอร์ดั้งเดิม ซึ่งหมายความว่าไม่มีชั้นการแปล และไม่มี mismatch รส หากตัวทดสอบกล่าวว่ามันตรงกัน รหัส JavaScript ของคุณจะตรงกันด้วย สลับธง วางสตริงตัวอย่างสดใหม่ และผลลัพธ์อัปเดตทันที — ไม่มีปุ่มเรียกใช้จำเป็น
วิธีการทดสอบรูปแบบ Regex
ขั้นตอนการทำงานทั้งหมดใช้เวลาต่ำกว่าหนึ่งนาที
- 01
วางหรือพิมพ์รูปแบบของคุณ
ป้อนนิพจน์ทั่วไปของคุณในเขตรูปแบบ ละเว้นเครื่องหมายทับโดยรอบ — ธง ตั้งแยกต่างหากแล้ว
- 02
ตั้งค่าธง
สลับ g, i, m, s, y และ u ทีละรายการ ธงทั่วโลกมักจำเป็นเกือบตลอดเวลาสำหรับกรณีการใช้งานการจับคู่หลายรายการ
- 03
วางสตริงการทดสอบของคุณ
เพิ่มข้อความที่คุณต้องการจับคู่ทับ ทุก keystroke จะเรียกใช้รูปแบบใหม่และเน้นการจับคู่ในอินพุต
- 04
ตรวจสอบกลุ่มจับการแสดง
เลื่อนรายการการจับคู่เพื่อดูตำแหน่งการจับคู่แต่ละรายการและค่าของกลุ่มจับการแสดงลำดับเลขที่
- 05
แสดงตัวอย่างการแทนที่
ป้อนแม่แบบการแทนที่โดยใช้ $1, $2 หรือ $& เพื่อดูเอาท์พุตแทนที่สด — ยอดเยี่ยมสำหรับการตรวจสอบการเรียกใช้ String.replace() ก่อนที่คุณจะเขียน
รายการตรวจสอบการดีบัก Regex อย่างรวดเร็ว
ก่อนสมมติว่ามีข้อบกพร่อง ให้ไปผ่านสิ่งเหล่านี้:
- 01ธง global ถูกเปิดใช้งานหากคุณคาดหวังการจับคู่มากกว่าหนึ่ง?
- 02ควรจุดจับคู่การขึ้นบรรทัด? เปิดใช้งานธง s ถ้าเป็นเช่นนั้น
- 03คุณใช้กลุ่มลำดับเลข ($1, $2) หรือกลุ่มชื่อ (\k<name>) ในการแทนที่?
- 04รูปแบบใช้ escapes Unicode (\p{…})? ต้องใช้ธง u
- 05ธง sticky (y) ต้องการ lastIndex สดใหม่สำหรับการจับคู่แต่ละครั้ง?
ส่วนตัวโดยการออกแบบ
ตัวทดสอบ regex ทำให้คำขอเครือข่ายเป็นศูนย์เมื่อคุณพิมพ์ รูปแบบและสตริงการทดสอบของคุณได้รับการประมวลผลโดยเอนจิน JavaScript ของเบราว์เซอร์ทั้งหมด — พวกเขาไม่เคยแตะเซิร์ฟเวอร์ ซึ่งทำให้ปลอดภัยต่อการวางเส้นบันทึกเป็นกรรมการ payload API เดิมหรือสตริงที่ละเอียดอ่อนขณะดีบัก
เนื่องจากไม่มีเบคเอนด์ที่เกี่ยวข้อง จึงไม่มีขีด จำกัด อัตรา ไม่มีบัญชีที่จำเป็น และไม่มีข้อจำกัดขนาด ไฟ นอกเหนือจากสิ่งที่แท็บเบราว์เซอร์ของคุณสามารถจัดการได้ รูปแบบและสตริงส่วนใหญ่ของวันนี้ประเมินในระยะเวลาต่ำกว่าหนึ่งมิลลิวินาที
คำถามที่พบบ่อยของตัวทดสอบ Regex
ตัวทดสอบ regex ใช้รส regex ใด
JavaScript (ECMAScript) รูปแบบได้รับการประเมินโดยเอนจิน RegExp ดั้งเดิมของเบราว์เซอร์ ตรงกับพฤติกรรม Node.js และเบราว์เซอร์สมัยใหม่อย่างแม่นยำ Lookbehinds กลุ่มชื่อ และ escapes คุณสมบัติ Unicode (\p{…} กับธง u) ทั้งหมดได้รับการสนับสนุน
รูปแบบหรือสตริงการทดสอบของฉันออกจากหน้า
ไม่ ทุกอย่างทำงานในเบราว์เซอร์ของคุณในเครื่อง — ไม่มีคำขอเครือข่ายเมื่อคุณพิมพ์รูปแบบ เปลี่ยนธง หรือแสดงตัวอย่างการแทนที่
ฉันใช้กลุ่มจับการแสดงในเขตการแทนที่อย่างไร
ใช้ $1, $2, … สำหรับกลุ่มลำดับเลข $& สำหรับการจับคู่ทั้งหมด และ $$ เพื่อแทรกเครื่องหมายดอลลาร์ตามตัวอักษร การแสดงตัวอย่างอัปเดตสดขณะที่คุณเปลี่ยนรูปแบบหรือแม่แบบ
สิ่งนี้ใช้สำหรับรูปแบบ Python หรือ PCRE
เอนจิน JavaScript ดังนั้นรูปแบบพื้นฐานส่วนใหญ่ทำหน้าที่เหมือนกัน แต่กลุ่มชื่อ Python-style (?P<name>…) และตัวบ่งชี้ที่เก็บไม่ได้ไม่สนับสนุน ใช้เท่า — (?<name>…) สำหรับกลุ่มชื่อ
เหตุใด regex ของฉันจึงไม่จับคู่ข้ามการขึ้นบรรทัด
เปิดใช้งานธง s (dot-all) หรือแทนที่ . ด้วย [\s\S] โดยไม่ต้องมัน จุดจับคู่ตัวอักษรใดๆ ยกเว้นการขึ้นบรรทัด