Utils365

เครื่องมือทดสอบ 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

  1. พิมพ์รูปแบบของคุณ

    ป้อนนิพจน์ทั่วไปโดยไม่มีเครื่องหมายทับ หรือวาง /pattern/flags ทั้งหมด แล้วติ๊กแฟล็กที่ต้องการ

  2. เพิ่มข้อความทดสอบ

    วางข้อความหรือเปิดไฟล์ ทุกผลที่ตรงกันจะถูกไฮไลต์ พร้อมตำแหน่งและกลุ่มแสดงด้านล่าง

  3. แทนที่หรือคัดลอก

    ติ๊ก แทนที่ เพื่อลองแทนที่ด้วย $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) เพื่อหาทั้งหมด

จะจับคู่จุดหรือวงเล็บตามตัวอักษรได้อย่างไร

ใส่แบ็กสแลชไว้หน้า: \. ตรงกับจุด และ \[ ตรงกับวงเล็บ อักขระพิเศษอื่นๆ อย่าง * + ? ( ) { } | ^ และ $ ก็เช่นกัน