นิพจน์ทั่วไป ผู้ทดสอบ
ทดสอบและแก้ไขนิพจน์ทั่วไปทันทีในเบราว์เซอร์ของคุณ ไฮไลท์การจับคู่ ดูกลุ่มจับภาพ และใช้โหมดแทนที่ — ฟรีและเป็นส่วนตัว
ทดสอบและแก้ไขนิพจน์ทั่วไปทันทีในเบราว์เซอร์ของคุณ ไฮไลท์การจับคู่ ดูกลุ่มจับภาพ และใช้โหมดแทนที่ — ฟรีและเป็นส่วนตัว
นิพจน์ทั่วไปเป็นภาษาเฉพาะโดเมนสำหรับการจับคู่รูปแบบในข้อความ พวกเขาเป็นส่วนหนึ่งของการประมวลผลมาตั้งแต่ปี 1968 และปัจจุบันได้ถูกสร้างขึ้นในทุกภาษาการเขียนโปรแกรมสมัยใหม่ โปรแกรมแก้ไขข้อความ และเครื่องมือค้นหาบรรทัดคำสั่ง ไวยากรณ์มีความกระชับแต่มีแนวโน้มที่จะเกิดข้อผิดพลาด: การเปลี่ยนแปลงเล็กๆ น้อยๆ ทำให้เกิดพฤติกรรมการจับคู่ที่แตกต่างกันอย่างละเอียด และนิพจน์ที่ซับซ้อนจะไม่สามารถอ่านได้อย่างรวดเร็ว ผู้ทดสอบที่แสดงการจับคู่แบบเรียลไทม์ในขณะที่คุณแก้ไขรูปแบบคือวิธีที่มีประสิทธิภาพที่สุดในการพัฒนาและตรวจสอบ regex
เครื่องมือทดสอบนี้ทำงานในเบราว์เซอร์ของคุณโดยใช้กลไก JavaScript regex (แบบเดียวกับที่แอปพลิเคชันของคุณใช้หากทำงานในเบราว์เซอร์) รูปแบบและข้อความทดสอบจะอัปเดตตามปฏิกิริยา: ทุกการเปลี่ยนแปลงในการรันการแข่งขันใหม่ กลุ่มการจับคู่จะถูกไฮไลต์ กลุ่มที่บันทึกไว้จะแสดงรายการ และแฟล็ก (ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ หลายบรรทัด ทั่วโลก) จะถูกเปิดเผยสำหรับการทดสอบ
ไวยากรณ์ Regex จะแตกต่างกันไปในแต่ละเครื่องยนต์ JavaScript เป็นไปตามข้อกำหนด ECMAScript Python, PCRE (ใช้โดย PHP และอื่นๆ อีกมากมาย), Java และ Go ต่างก็มีภาษาถิ่นของตัวเองซึ่งมีฟีเจอร์ที่ทับซ้อนกันแต่ไม่เหมือนกัน รูปแบบที่พัฒนาที่นี่ใช้ไวยากรณ์ ECMAScript การพกพาข้ามเครื่องยนต์จำเป็นต้องตรวจสอบเอกสารประกอบของแต่ละเป้าหมาย
ข้อบกพร่องของ Regex นั้นยากที่จะแก้ไขหลังจากการปรับใช้อย่างฉาวโฉ่ รูปแบบที่ดูสมเหตุสมผลอาจเข้ากันมากหรือน้อยกว่าที่ตั้งใจไว้ ล้มเหลวใน Edge Case หรือมีการย้อนรอยอย่างรุนแรงในอินพุตบางอย่าง รูปแบบการทดสอบแบบโต้ตอบกับอินพุตของตัวแทนจะตรวจจับปัญหาก่อนการตรวจสอบโค้ดและการผลิต
รูปแบบยังได้รับประโยชน์จากเอกสารประกอบ การแสดง regex ควบคู่ไปกับอินพุตที่ควรตรงกันและอินพุตที่ไม่ควรตรงกันจะทำให้มีเจตนาที่ชัดเจน ผู้ดูแลในอนาคต (รวมถึงตัวคุณเองในอีกหกเดือนด้วย) ชื่นชมกรณีทดสอบที่ได้รับการบันทึกไว้มากกว่าที่พวกเขาชื่นชมกับเอกสารประกอบที่ชาญฉลาด
พิมพ์รูปแบบ พิมพ์อินพุตทดสอบ ดูการแข่งขันที่ไฮไลต์สด
JavaScript regex เป็นไปตามข้อกำหนด ECMAScript คุณสมบัติหลัก: คลาสอักขระ ([abc], [^abc]), ปริมาณ (*, +, ?, {n,m}), การสลับ (|), การจัดกลุ่ม ((...)), กลุ่มการจับและไม่จับ, lookahead และ lookbehind (กลไกสมัยใหม่), การอ้างอิงด้านหลัง, กลุ่มที่มีชื่อ, คุณสมบัติ Unicode Escape (พร้อมแฟล็ก u) และชุดมาตรฐานของลำดับหลีก
ความแตกต่างที่สำคัญจาก PCRE และ Python: รองรับ lookbehind ล่าสุดใน JavaScript (2018+); กลุ่มที่มีชื่อใช้ไวยากรณ์ (?<name>...) การหลีก Unicode บางตัวต้องใช้แฟล็ก u เพื่อให้ทำงานได้อย่างถูกต้อง รูปแบบที่มีไว้สำหรับการใช้งานข้ามภาษาควรได้รับการตรวจสอบกับเอกสารประกอบของแต่ละเป้าหมาย
ประสิทธิภาพ: เอ็นจิ้น regex ที่อิงการย้อนรอย (ส่วนใหญ่รวมถึง JavaScript) สามารถมีการย้อนรอยแบบหายนะในรูปแบบทางพยาธิวิทยาบางอย่าง การทดสอบที่แขวนเครื่องทดสอบไว้เป็นสัญญาณว่ารูปแบบต้องการการทำให้ง่ายขึ้น โดยทั่วไปแล้วจะหลีกเลี่ยงตัวระบุปริมาณที่ซ้อนกันและการสลับที่ไม่ชัดเจน