ทดสอบ Regex — ทดสอบ Regular Expression ของ JavaScript ออนไลน์
ทดสอบ regular expression ของ JavaScript ออนไลน์ เน้นข้อความที่ตรงกันทันที รองรับกลุ่มจับคู่และกลุ่มที่ตั้งชื่อ แฟล็กทั้งหมด และตัวอย่างการแทนที่ แพตเทิร์นที่ช้าจะหยุดหลัง 1 วินาที
แปลงในเบราว์เซอร์ · ไม่ต้องสมัครสมาชิก
สรุปไวยากรณ์
.- อักขระใดก็ได้ยกเว้นการขึ้นบรรทัดใหม่ (ใช้แฟล็ก s เพื่อรวมด้วย)
\d \w \s- ตัวเลข อักขระคำ [A-Za-z0-9_] ช่องว่าง
\D \W \S- ไม่ใช่ตัวเลข ไม่ใช่อักขระคำ ไม่ใช่ช่องว่าง
[abc] [^abc]- หนึ่งใน a, b, c / อักขระใดก็ได้ยกเว้น a, b, c
[a-z]- อักขระใดก็ได้จาก a ถึง z
^ $- จุดเริ่ม / จุดจบของข้อความ (ของแต่ละบรรทัดเมื่อใช้แฟล็ก m)
\b- ขอบเขตคำ
* + ?- 0 ครั้งขึ้นไป, 1 ครั้งขึ้นไป, 0 หรือ 1 ครั้ง
{2,5}- ตั้งแต่ 2 ถึง 5 ครั้ง ({3} ตรงจำนวน, {2,} ขั้นต่ำ)
*? +?- แบบไม่โลภ: จับคู่ให้น้อยที่สุด
(abc)- กลุ่มเก็บค่า
(?<name>abc)- กลุ่มเก็บค่าที่ตั้งชื่อ
(?:abc)- กลุ่มที่ไม่เก็บค่า
\1 \k<name>- ซ้ำข้อความที่กลุ่ม 1 / กลุ่มที่ตั้งชื่อจับคู่ได้
a|b- a หรือ b
(?=a) (?!a)- ตามด้วย a / ไม่ตามด้วย a
(?<=a) (?<!a)- นำหน้าด้วย a / ไม่นำหน้าด้วย a
\p{L}- ตัวอักษรใดก็ได้ในทุกภาษา (ต้องใช้แฟล็ก u หรือ v)
ใช้เครื่องมือนิพจน์ปกติ JavaScript (ECMAScript) ของเบราว์เซอร์ ผลจึงตรงกับโค้ด JavaScript เครื่องมืออื่น เช่น PCRE, Python หรือ Java มีไวยากรณ์บางส่วนต่างกัน การจับคู่ทำงานใน worker เบื้องหลังและหยุดหลัง 1 วินาทีเพื่อป้องกันการย้อนรอยจำนวนมหาศาลที่ทำให้หน้าค้าง
วิธีใช้
- ป้อนนิพจน์ปกติแล้วเลือกแฟล็กที่ต้องการ (g ค้นหาทุกการจับคู่)
- วางข้อความทดสอบ ส่วนที่ตรงจะถูกไฮไลต์และแสดงพร้อมดัชนีและกลุ่มเก็บค่า
- เปิดแทนที่เพื่อดูผลของ String.replace พร้อมอ้างอิง $1 หรือ $<name>
ตัวอย่าง
รูปแบบ: (?<user>\w+)@(\w+)\.com แฟล็ก: g ข้อความ: alice@example.com, bob@test.com พบ: alice@example.com (user = alice, 2 = example), bob@test.com แทนที่ด้วย $<user> at $2 → alice at example, bob at test
รายละเอียดและข้อจำกัด
รูปแบบทำงานด้วย JavaScript RegExp ที่อยู่ในเบราว์เซอร์ lookbehind, กลุ่มตั้งชื่อ, Unicode property escapes และแฟล็ก d จึงทำงานตรงกับโค้ดของคุณ แฟล็ก v แสดงเฉพาะเมื่อเบราว์เซอร์รองรับ
จับคู่ใน Web Worker บนอุปกรณ์โดยไม่อัปโหลด แต่ละรอบหยุดหลังประมาณ 1 วินาที และแสดงสูงสุด 1,000 รายการ
FAQ
ทำไมนิพจน์ของฉันพบแค่หนึ่งรายการ?
ใน JavaScript นิพจน์ที่ไม่มีแฟล็ก g (global) จะหยุดที่รายการแรก เลือก g เพื่อค้นหาทั้งหมด แล้วเครื่องมือจะแสดงทุกการจับคู่
catastrophic backtracking คืออะไร?
บางรูปแบบ เช่น (a+)+$ หรือ (.*)* อาจใช้เวลาเพิ่มแบบทวีคูณกับข้อความที่เกือบตรง เครื่องมือนี้รันนิพจน์ใน worker แยกแล้วหยุดหลัง 1 วินาที หน้าจึงยังตอบสนองและแสดงข้อผิดพลาดแทน
นิพจน์ที่ทดสอบที่นี่ใช้ใน Python หรือ PHP ได้ไหม?
มักใช้ได้แต่ไม่เสมอไป เครื่องมือนี้ใช้เอนจิน JavaScript ส่วน Python, PHP (PCRE) และ Java มีฟีเจอร์และไวยากรณ์กลุ่มตั้งชื่อ lookbehind และแฟล็กต่างกัน จึงควรตรวจสอบใหม่หากรูปแบบพึ่งพาสิ่งเหล่านี้
เครื่องมือที่เกี่ยวข้อง
แหล่งอ้างอิงรูปแบบไฟล์
อัปเดตหน้าเครื่องมือเมื่อ: