ตัวทดสอบ Regex
แฟลก
พิมพ์นิพจน์ทั่วไป วางข้อความที่จะใช้ทดสอบ แล้วตัวทดสอบจะเรียกใช้แพตเทิร์นและแสดงรายการทุกการจับคู่ที่พบ ผลลัพธ์แต่ละรายการแสดงว่าการจับคู่เริ่มที่ใดและเนื้อหาของแต่ละกลุ่มจับคู่ เพื่อให้คุณเห็นชัดว่าแพตเทิร์นจับอะไรได้บ้าง เปิดแฟล็กไม่สนใจตัวพิมพ์ใหญ่-เล็ก หลายบรรทัด และ dotall เพื่อเปลี่ยนพฤติกรรมของแพตเทิร์น
วิธีทดสอบ regex
-
1
ป้อนแพตเทิร์นของคุณ
พิมพ์นิพจน์โดยไม่ต้องมีตัวคั่น ตัวทดสอบจะครอบด้วย `/ /` ให้คุณ แพตเทิร์นที่ไม่ถูกต้องจะแสดงข้อความแสดงข้อผิดพลาดที่ชัดเจน แทนที่จะล้มเหลวเงียบ ๆ
-
2
เลือกแฟล็ก
เปิด `i` (ไม่สนใจตัวพิมพ์ใหญ่-เล็ก), `m` (หลายบรรทัด) หรือ `s` (dotall) เพื่อจับคู่ตามที่คุณต้องการ
-
3
วางข้อความทดสอบ
เพิ่มข้อความที่คุณต้องการค้นหา ตัวทดสอบจะไล่ดูทั้งหมดและหาทุกการจับคู่ ไม่ใช่แค่รายการแรก
-
4
ตรวจสอบการจับคู่
การจับคู่แต่ละรายการแสดงตำแหน่ง (offset) ในข้อความ การจับคู่แบบเต็ม และแต่ละกลุ่มจับคู่ที่มีหมายเลข
ตัวทดสอบแสดงอะไรให้คุณ
การรันแพตเทิร์นในหัว หรือด้วย grep เร็ว ๆ บอกได้เพียงว่ามีสิ่งที่ตรงกันหรือไม่ ตัวทดสอบยังแสดง:
- ทุกการจับคู่ พร้อมตำแหน่งของมัน มันค้นหาทั้งข้อความเสมอ และรายงานการจับคู่แต่ละรายการด้วยตำแหน่งอักขระ (offset) ที่มันเริ่ม
- กลุ่มใดจับอะไร การจับคู่แต่ละรายการถูกแยกเป็นการจับคู่แบบเต็มและกลุ่มจับคู่ที่มีหมายเลข เพื่อให้คุณยืนยันว่า
(...)จับส่วนที่คุณคาดหวังไว้ - แฟล็กเปลี่ยนอะไร เปิด
i,mหรือsแล้วทดสอบอีกครั้งเพื่อดูว่าการไม่สนใจตัวพิมพ์ใหญ่-เล็ก หลายบรรทัด หรือ dotall เปลี่ยนผลลัพธ์อย่างไร
แฟล็กโดยสรุป
| แฟล็ก | ชื่อ | เปลี่ยนอะไร |
|---|---|---|
i |
ไม่สนใจตัวพิมพ์ใหญ่-เล็ก | A ตรงกับ a ด้วย และในทางกลับกัน |
m |
หลายบรรทัด | ^ และ $ ตรงกันที่ต้นและท้ายของแต่ละบรรทัด ไม่ใช่แค่ทั้งข้อความ |
s |
Dotall | . ตรงกับอักขระขึ้นบรรทัดใหม่ด้วย |
การจับคู่เป็นแบบทั่วไป (global) เสมอ: ตัวทดสอบคืนทุกการจับคู่ในข้อความ จึงไม่มีแฟล็ก “global” แยกต่างหากให้ตั้ง แพตเทิร์นรันบนเอนจิน PCRE พร้อมรองรับ Unicode คลาสอย่าง \w และ \d จึงทำงานสอดคล้องกันบนข้อความนานาชาติ
ปัญหา regex ที่พบบ่อยซึ่งสิ่งนี้ช่วยให้พบ
| อาการ | สาเหตุที่มักพบ |
|---|---|
| การจับคู่ขนาดใหญ่รายการเดียวที่ครอบคลุมทุกอย่าง | .* เป็นแบบตะกละ ใช้ .*? หรือคลาสปฏิเสธเช่น [^"]* |
^ หรือ $ ตรงกันแค่ครั้งเดียว |
ขาดแฟล็ก m บนข้อความหลายบรรทัด |
. หยุดที่การขึ้นบรรทัดใหม่ |
ขาดแฟล็ก s |
| กลุ่มจับคู่เรียงลำดับผิดคาด | ( ที่ซ้อนกันเลื่อนหมายเลขกลุ่ม นับจากซ้ายไปขวา |
| แพตเทิร์นทำงานช้า | * หรือ + ที่ซ้อนกันเหนือทางเลือกที่ทับซ้อนทำให้เกิดการย้อนรอยหนัก |
เคล็ดลับสำหรับแพตเทิร์นที่เร็วและปลอดภัยกว่า
- ยึดด้วย
^เมื่อการจับคู่เริ่มที่ต้น เพื่อให้เอนจินไม่ต้องไล่ดูทั้งสตริง - เลือกคลาสอักขระ (
[abc]) แทนการสลับ (a|b|c) คลาสเร็วกว่าในทุกเอนจินหลัก - แทน
.*แบบตะกละด้วยคลาสปฏิเสธเช่น[^"]*เมื่อคุณรู้ตัวปิดท้าย เพื่อไม่ให้เกิดการย้อนรอย
คำถามที่พบบ่อย
มันรันแพตเทิร์นของคุณด้วย PCRE ซึ่งเป็นเอนจินที่มีในตัว PHP โดยเปิดโหมด Unicode ไวยากรณ์เฉพาะของ PCRE เช่น \d, \b และ lookaround ทำงานตามที่คาด หากคุณจะนำแพตเทิร์นไปใช้ใน JavaScript, Python หรือภาษาอื่น ให้ตรวจสอบความต่างเล็กน้อยของไวยากรณ์ก่อนนำขึ้นใช้จริง
ทุกการจับคู่ ตัวทดสอบค้นหาทั้งข้อความเสมอ จึงไม่มีแฟล็ก “global” แยกต่างหากให้ตั้ง การจับคู่แต่ละรายการถูกแสดงพร้อมตำแหน่งในข้อความ
ได้ การจับคู่แต่ละรายการถูกแยกเป็นการจับคู่แบบเต็มและแต่ละกลุ่มจับคู่ที่มีหมายเลข เพื่อให้คุณยืนยันว่า (...) แต่ละอันจับส่วนใดของข้อความ
i ทำให้การจับคู่ไม่สนใจตัวพิมพ์ใหญ่-เล็ก m ทำให้ ^ และ $ ตรงกันที่ทุกขอบบรรทัด และ s ทำให้ . ตรงกับอักขระขึ้นบรรทัดใหม่ เปิดหรือปิดแล้วทดสอบอีกครั้งเพื่อเปรียบเทียบผลลัพธ์
ตัวทดสอบแสดงข้อความแสดงข้อผิดพลาดที่ชัดเจนซึ่งอธิบายปัญหา เช่น วงเล็บเหลี่ยมที่ไม่ปิดหรือกลุ่มที่ไม่จบ แทนที่จะคืนผลว่าไม่มีการจับคู่อย่างเงียบ ๆ
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวตรวจสอบอีเมล
ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ
เครื่องมือสร้าง EditorConfig
สร้างไฟล์ .editorconfig จากกฎการเยื้อง การจบบรรทัด และชุดอักขระของคุณ แล้วเพิ่มเซกชันที่ถูกต้องให้ทุกภาษาในรีโพซิทอรี ทั้ง Python, Go, YAML, Makefile และอื่น ๆ
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- أداة اختبار Regex [AR]
- Testeur de Regex [FR]
- 정규식 테스터 [KO]
- Penguji Regex [ID]
- Regex-Tester [DE]
- Tester Regex [PL]
- Regex-tester [NL]
- Regex-testare [SV]
- 正規表現テスター [JA]
- Trình kiểm tra Regex [VI]
- Probador de Regex [ES]
- Testador de Regex [PT]
- Тестер Regex [RU]
- Regex Test Aracı [TR]
- 正则测试器 [ZH]
- Regex Tester [EN]
- Tester di Regex [IT]