DevToys Web Pro iconDevToys Web Proบล็อก
ให้คะแนนเรา:
ลองใช้ส่วนขยายเบราว์เซอร์:

ตัวทดสอบนิพจน์ทั่วไป

การกำหนดค่า

แพตเทิร์น

สตริงทดสอบ

  • รายการที่ตรงกัน

    ป้อนแพตเทิร์นเพื่อดูรายการที่ตรงกัน

    แทนที่

    ข้อมูลอ้างอิง

    คลาสอักขระ

    .อักขระใดก็ได้ยกเว้นขึ้นบรรทัดใหม่
    [abc]จับคู่ a, b หรือ c
    [^abc]จับคู่อะไรก็ได้ยกเว้น a, b, c
    [a-z]ช่วงอักขระ (a ถึง z)
    \dตัวเลข (0-9)
    \Dไม่ใช่ตัวเลข
    \wอักขระคำ [a-zA-Z0-9_]
    \Wอักขระที่ไม่ใช่อักขระคำ
    \sช่องว่าง
    \Sไม่ใช่ช่องว่าง

    จุดยึด

    ^จุดเริ่มต้นของสตริง/บรรทัด
    $จุดสิ้นสุดของสตริง/บรรทัด
    \bขอบเขตคำ
    \Bไม่ใช่ขอบเขตคำ

    อักขระที่ถูกเอสเคป

    \tแท็บ
    \nขึ้นบรรทัดใหม่
    \rคาร์ริเอจรีเทิร์น
    \0อักขระนัล
    \xhhอักขระฐานสิบหก (เช่น \xFF)
    \uhhhhอักขระยูนิโค้ด

    กลุ่มและการอ้างอิง

    (abc)กลุ่มแบบจับค่า
    (?:abc)กลุ่มแบบไม่จับค่า
    (?<name>abc)กลุ่มแบบจับค่าที่มีชื่อ
    \1การอ้างอิงย้อนกลับไปยังกลุ่ม 1
    \k<name>การอ้างอิงย้อนกลับไปยังกลุ่มที่มีชื่อ

    การมองรอบข้าง

    (?=abc)การมองไปข้างหน้าแบบบวก
    (?!abc)การมองไปข้างหน้าแบบลบ
    (?<=abc)การมองย้อนกลับแบบบวก
    (?<!abc)การมองย้อนกลับแบบลบ

    ตัวระบุจำนวนและการสลับทางเลือก

    a*0 ครั้งหรือมากกว่า (greedy)
    a+1 ครั้งหรือมากกว่า (greedy)
    a?0 หรือ 1 (ไม่บังคับ)
    a{n}จำนวน n ครั้งพอดี
    a{n,}จำนวน n ครั้งหรือมากกว่า
    a{n,m}ระหว่าง n ถึง m ครั้ง
    a*?0 ครั้งหรือมากกว่า (lazy)
    a+?1 ครั้งหรือมากกว่า (lazy)
    a|bจับคู่ a หรือ b

    การแทนที่

    $1, $2เนื้อหาของกลุ่มที่ถูกจับค่า
    $&การจับคู่ทั้งหมด
    $`ก่อนการจับคู่
    $'หลังการจับคู่
    $$อักขระ $ แบบตัวอักษร
    รายละเอียดทางเทคนิค

    ตัวทดสอบ RegEx ทำงานอย่างไร

    เครื่องมือนี้ทำอะไร

    ตัวทดสอบ regex ช่วยให้คุณทดสอบ regular expressions กับข้อความตัวอย่างแบบเรียลไทม์ ทำหน้าที่เป็นทั้งตัวดีบัก regex และตัวตรวจสอบความถูกต้องของ regex ช่วยให้นักพัฒนาสร้าง ทดสอบ และปรับแต่งนิพจน์การแมตช์แพตเทิร์น ตัวทดสอบนี้ใช้เอนจิน JavaScript RegExp (ECMAScript) ดังนั้นไวยากรณ์อาจแตกต่างจากเอนจิน PCRE, .NET หรือ Java regex เมื่อคุณต้องการทดสอบ regex ออนไลน์ เครื่องมือนี้จะแสดงการแมตช์ทั้งหมด กลุ่มที่จับ (capture groups) และการแทนที่ (replacements) เครื่องมือนี้รองรับไวยากรณ์ JavaScript regex รวมถึงแฟล็ก JavaScript regex (g, i, m, s, u): global (g), ไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (i), หลายบรรทัด (m), dotAll (s) และ unicode (u) โดยจะไฮไลต์ส่วนที่แมตช์ในสตริงทดสอบ แสดง capture groups และสามารถทำการค้นหาและแทนที่เพื่อพรีวิวว่า regex จะเปลี่ยนข้อความอย่างไร

    กรณีการใช้งานทั่วไปของนักพัฒนา

    นักพัฒนาใช้ตัวทดสอบ regex เมื่อสร้างแพตเทิร์นสำหรับการตรวจสอบความถูกต้อง แยกวิเคราะห์ไฟล์ล็อก หรือดึงข้อมูลจากสตริง การทดสอบแพตเทิร์น regexp ช่วยระบุกรณีขอบ ดีบักนิพจน์ที่ซับซ้อน และทำความเข้าใจว่าแฟล็กต่าง ๆ ส่งผลต่อพฤติกรรมการแมตช์อย่างไร นักพัฒนาจำนวนมากใช้ตัวทดสอบ regex เพื่อตรวจสอบอีเมล เบอร์โทรศัพท์ URL หรือรูปแบบข้อมูลที่มีโครงสร้างอื่น ๆ เครื่องมือนี้มีประโยชน์เมื่อทำงานกับการตรวจสอบฟอร์ม การวิเคราะห์ล็อก หรือการประมวลผลข้อความ ตัวทดสอบ regex ยังช่วยเมื่อเรียนรู้ regular expressions เพราะแสดงให้เห็นว่าแพตเทิร์นแมตช์ข้อความอย่างไรผ่านการวนลูปการแมตช์และการดึงกลุ่ม เมื่อทดสอบ regexp กับข้อความหลายบรรทัดหรืออักขระพิเศษ เครื่องมือนี้ช่วยให้นักพัฒนาเห็นอย่างชัดเจนว่าส่วนใดถูกแมตช์และเพราะเหตุใด

    รูปแบบข้อมูล ชนิด หรือรูปแบบย่อย

    ตัวทดสอบ regex รองรับไวยากรณ์ regular expression ของ JavaScript ซึ่งอิงจาก regex สไตล์ Perl แต่มีความแตกต่างจากเอนจิน regex อื่น ๆ เครื่องมือนี้รองรับ character classes เช่น \d สำหรับตัวเลข, \w สำหรับอักขระคำ (word characters) และ \s สำหรับช่องว่าง (whitespace) รองรับ anchors ( ^, $), quantifiers (*, +, ?) และ alternation (|) แฟล็ก multiline ส่งผลต่อการแมตช์ของ ^ และ $ ขณะที่แฟล็ก dotAll ทำให้ . แมตช์อักขระขึ้นบรรทัดใหม่ได้ การเข้าใจพฤติกรรมบรรทัดใหม่ของ regex เป็นสิ่งสำคัญสำหรับการประมวลผลข้อความหลายบรรทัด ตัวอย่างเช่น การทดสอบแพตเทิร์นอย่าง /\d-\d-\d/ กับสตริงเบอร์โทรศัพท์จะแสดงอย่างชัดเจนว่าส่วนใดแมตช์ การจัดการบรรทัดใหม่ของ regex ขึ้นอยู่กับแฟล็ก: แพตเทิร์น ^foo.*bar$ จะแมตช์ "foo\nbar" ได้ก็ต่อเมื่อใช้แฟล็ก dotAll (s) เพราะโดยค่าเริ่มต้น . จะไม่แมตช์อักขระขึ้นบรรทัดใหม่ เมื่อทำงานกับแพตเทิร์น regex ที่เกี่ยวกับบรรทัดใหม่ ให้ใช้ \n เพื่อแมตช์บรรทัดใหม่แบบลิเทอรัล หรือ \r\n สำหรับรูปแบบบรรทัดใหม่ของ Windows

    ข้อผิดพลาดที่พบบ่อยและกรณีขอบ

    ข้อผิดพลาดที่พบบ่อยคือการลืมว่า regex ของ JavaScript ใช้เครื่องหมายทับ / เป็นตัวคั่น ไม่ใช่เครื่องหมายอัญประกาศ อีกประเด็นคือความเข้าใจผิดว่าแฟล็ก global ส่งผลต่อการแมตช์อย่างไร: หากไม่มีแฟล็กนี้ จะคืนค่าเฉพาะการแมตช์แรก แต่หากมี จะค้นหาการแมตช์ทั้งหมด การจัดการบรรทัดใหม่ของ regex อาจยุ่งยาก: อักขระ . จะไม่แมตช์บรรทัดใหม่โดยค่าเริ่มต้น เว้นแต่จะใช้แฟล็ก dotAll การปฏิเสธใน character class ด้วย [^...] อาจทำให้สับสน เพราะมันแมตช์อักขระใด ๆ ที่ไม่อยู่ในคลาสนั้น quantifiers แบบ greedy เทียบกับ lazy ( * เทียบกับ *?) มีพฤติกรรมต่างกันและอาจทำให้ได้ผลลัพธ์ที่ไม่คาดคิด การยืนยันแบบ lookahead และ lookbehind ( (?=...), (?&lt;=...)) ทรงพลังแต่ดีบักได้ยาก นักพัฒนาควรทดสอบแพตเทิร์น regex กับอินพุตหลากหลาย รวมถึงกรณีขอบอย่างสตริงว่าง อักขระพิเศษ และอักขระ unicode

    เมื่อใดควรใช้เครื่องมือนี้แทนการเขียนโค้ด

    ใช้ตัวทดสอบ regex นี้เพื่อพัฒนาแพตเทิร์นอย่างรวดเร็ว ดีบักนิพจน์ที่ซับซ้อน หรือเรียนรู้ไวยากรณ์ regular expression เหมาะสำหรับทดสอบแพตเทิร์น regex ก่อนนำไปใช้ในโค้ด โดยเฉพาะเมื่อทำงานกับไวยากรณ์ที่ไม่คุ้นเคยหรือแพตเทิร์นที่ซับซ้อน ฟีดแบ็กแบบภาพช่วยระบุได้ว่าทำไมแพตเทิร์นจึงแมตช์หรือไม่แมตช์กับข้อความบางส่วน สำหรับโค้ดโปรดักชัน ให้ใช้ตัวทดสอบ regex ที่ผสานรวมใน IDE หรือเฟรมเวิร์กทดสอบยูนิต ซึ่งสามารถตรวจสอบแพตเทิร์นเป็นส่วนหนึ่งของชุดทดสอบของคุณ เครื่องมือบนเบราว์เซอร์เด่นด้านการพัฒนาแบบโต้ตอบและการเรียนรู้ ขณะที่โซลูชันแบบโค้ดให้ระบบอัตโนมัติ การผสานรวมกับไปป์ไลน์ CI/CD และความสามารถในการทดสอบแพตเทิร์นกับชุดข้อมูลขนาดใหญ่ สำหรับแอปที่ซับซ้อน การทดสอบ regex แบบอัตโนมัติช่วยให้มั่นใจว่าแพตเทิร์นทำงานถูกต้องกับอินพุตและกรณีขอบที่หลากหลาย