เครื่องมือทดสอบ Regex
เขียนนิพจน์ทั่วไปแล้วดูว่าตรงกับอะไร ทันทีที่คุณพิมพ์
พิมพ์รูปแบบโดยไม่มีเครื่องหมายทับ หรือวาง /pattern/flags ทั้งหมด
วางข้อความ เปิดไฟล์ หรือลากมาวางที่นี่
สรุปย่อ
- \d
- ตัวเลขหนึ่งตัว 0–9
- \w
- ตัวอักษร ตัวเลข หรือขีดล่างหนึ่งตัว
- \s
- ช่องว่าง แท็บ หรือการขึ้นบรรทัดใหม่
- .
- อักขระใดก็ได้ยกเว้นการขึ้นบรรทัดใหม่
- ^
- ต้นข้อความ (หรือต้นบรรทัด เมื่อใช้ m)
- $
- ท้ายข้อความ (หรือท้ายบรรทัด เมื่อใช้ m)
- *
- สิ่งที่อยู่ก่อนหน้า 0 ครั้งขึ้นไป
- +
- สิ่งที่อยู่ก่อนหน้า 1 ครั้งขึ้นไป
- ?
- สิ่งที่อยู่ก่อนหน้า จะมีหรือไม่มีก็ได้
- {n,m}
- สิ่งที่อยู่ก่อนหน้า ระหว่าง n ถึง m ครั้ง
- [abc]
- a, b หรือ c ตัวใดตัวหนึ่ง
- (…)
- กลุ่ม ซึ่งจับเป็น $1, $2, …
- (?<name>…)
- กลุ่มที่มีชื่อ ซึ่งจับเป็น $<name>
- a|b
- ด้านซ้ายหรือด้านขวาอย่างใดอย่างหนึ่ง
ถัดไป: เปรียบเทียบข้อความ · จัดรูปแบบ JSON
แจ้งปัญหาเกี่ยวกับเครื่องมือนี้
วิธีใช้งาน ทดสอบ Regex
พิมพ์รูปแบบของคุณ
ป้อนนิพจน์ทั่วไปโดยไม่มีเครื่องหมายทับ หรือวาง /pattern/flags ทั้งหมด แล้วติ๊กแฟล็กที่ต้องการ
เพิ่มข้อความทดสอบ
วางข้อความหรือเปิดไฟล์ ทุกผลที่ตรงกันจะถูกไฮไลต์ พร้อมตำแหน่งและกลุ่มแสดงด้านล่าง
แทนที่หรือคัดลอก
ติ๊ก แทนที่ เพื่อลองแทนที่ด้วย $1 หรือ $<name> แล้วคัดลอกผลลัพธ์หรือตัว Regex
ทำไมต้องใช้ Utils365
เห็นกลุ่มได้ทันที
แต่ละผลที่ตรงกันแสดงกลุ่มแบบมีหมายเลขและแบบมีชื่อ คุณจึงตรวจได้ว่า $1 หรือ $<year> จะเก็บค่าอะไร
ปลอดภัยจากรูปแบบที่ทำงานไม่หยุด
การจับคู่ทำงานเบื้องหลังโดยจำกัดเวลาหนึ่งวินาที รูปแบบที่ย้อนรอยไม่รู้จบจึงทำให้หน้าค้างไม่ได้
เอนจินเดียวกับโค้ดของคุณ
ใช้เอนจิน Regex ของ JavaScript ในเบราว์เซอร์ ผลลัพธ์จึงตรงกับที่ Node.js และเบราว์เซอร์จะทำ
เป็นส่วนตัวตั้งแต่การออกแบบ
รูปแบบและข้อความของคุณอยู่ในเบราว์เซอร์ ไม่มีการอัปโหลดใดๆ จึงทดสอบกับไฟล์ล็อกและข้อมูลลูกค้าได้อย่างปลอดภัย
คำถามที่พบบ่อย
เครื่องมือนี้ใช้ Regex แบบไหน
JavaScript (ECMAScript) แบบเดียวกับเบราว์เซอร์และ Node.js รูปแบบส่วนใหญ่ทำงานเหมือนกันในภาษาอื่น แต่ Lookbehind กลุ่มที่มีชื่อ และ Escape บางตัวต่างกันในเอนจินรุ่นเก่า
แฟล็ก g, i, m, s, u และ y ทำอะไร
g หาผลที่ตรงกันทั้งหมด i ไม่สนตัวพิมพ์เล็กใหญ่ m ทำให้ ^ และ $ ตรงกับทุกบรรทัด s ให้ . ตรงกับการขึ้นบรรทัดใหม่ u เปิดการรองรับ Unicode เต็มรูปแบบ และ y ทำให้การจับคู่แต่ละครั้งเริ่มตรงที่ครั้งก่อนจบ
จะใช้กลุ่มจับในการแทนที่ได้อย่างไร
เขียน $1, $2 และต่อไปเรื่อยๆ สำหรับกลุ่มแบบมีหมายเลข $<name> สำหรับกลุ่มที่มีชื่อ และ $& สำหรับผลที่ตรงกันทั้งหมด หากต้องการใส่เครื่องหมายดอลลาร์จริง ให้เขียน $$
ทำไมรูปแบบของฉันบอกว่าใช้เวลานานเกินไป
รูปแบบบางแบบ เช่น (a+)+ กับสตริงยาวๆ จะลองจับคู่หลายวิธีมหาศาลก่อนยอมแพ้ เรียกว่า Catastrophic Backtracking แก้ได้ด้วยการทำให้การซ้ำแบบซ้อนกันเฉพาะเจาะจงขึ้น
ทำไมฉันเห็นผลที่ตรงกันแค่รายการเดียว
ถ้าไม่มีแฟล็ก g นิพจน์ทั่วไปจะหยุดที่ผลแรกที่ตรงกัน ติ๊ก ทั้งหมด (g) เพื่อหาทั้งหมด
จะจับคู่จุดหรือวงเล็บตามตัวอักษรได้อย่างไร
ใส่แบ็กสแลชไว้หน้า: \. ตรงกับจุด และ \[ ตรงกับวงเล็บ อักขระพิเศษอื่นๆ อย่าง * + ? ( ) { } | ^ และ $ ก็เช่นกัน