ESC

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

/ / g

รูปแบบด่วน

สถิติ

จำนวนการจับคู่ทั้งหมด 0
กลุ่ม 0
เวลาดำเนินการ 0ms
การประมวลผล regex ทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณ ไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ใดๆ

0

จำนวนการจับคู่ทั้งหมด

0

กลุ่ม

0ms

เวลาดำเนินการ

ตัวอย่างการใช้งาน

การตรวจสอบอีเมล

ตรวจสอบและดึงที่อยู่อีเมลจากข้อความโดยใช้รูปแบบ regex

/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g
การดึง URL

ค้นหาและดึง URL จากเนื้อหาข้อความใดๆ โดยใช้นิพจน์ทั่วไป

/https?:\/\/[\w\-]+(\.[\w\-]+)+/g
การแยกวิเคราะห์หมายเลขโทรศัพท์

แยกวิเคราะห์และตรวจสอบหมายเลขโทรศัพท์ในรูปแบบสากลต่างๆ

/\+?\d{1,4}[-.\s]?\(?\d{1,3}\)?[-.\s]?\d{1,4}/g

คุณสมบัติ

ไฮไลต์การจับคู่

การไฮไลต์ด้วยภาพของการจับคู่ทั้งหมดในข้อความทดสอบ

แฟล็ก Regex

รองรับแฟล็กทั่วไป ไม่สนใจตัวพิมพ์ หลายบรรทัด และ dotAll

รูปแบบด่วน

รูปแบบสำเร็จรูปสำหรับกรณีใช้งานทั่วไป เช่น อีเมล URL โทรศัพท์

รายละเอียดกลุ่ม

ดูกลุ่มจับและกลุ่มที่ตั้งชื่อสำหรับแต่ละการจับคู่

สถิติ

จำนวนการจับคู่ จำนวนกลุ่ม และเมตริกเวลาดำเนินการ

ทดสอบแบบเรียลไทม์

ผลลัพธ์อัปเดตโดยอัตโนมัติขณะที่คุณพิมพ์

การจัดการข้อผิดพลาด

ข้อความแสดงข้อผิดพลาดที่ชัดเจนสำหรับรูปแบบ regex ที่ไม่ถูกต้อง

ความเป็นส่วนตัว

การประมวลผลทั้งหมดในเบราว์เซอร์ ไม่มีการส่งข้อมูล

วิธีการใช้งาน?

1

ป้อนรูปแบบ

พิมพ์รูปแบบนิพจน์ทั่วไปของคุณในช่องป้อนรูปแบบ

2

ตั้งค่าแฟล็ก

เลือกแฟล็กที่เหมาะสม: ทั่วไป ไม่สนใจตัวพิมพ์ หลายบรรทัด dotAll

3

ป้อนข้อความทดสอบ

วางหรือพิมพ์ข้อความที่คุณต้องการทดสอบกับรูปแบบ regex ของคุณ

4

ดูผลลัพธ์

ดูการจับคู่ที่ไฮไลต์และข้อมูลการจับคู่โดยละเอียดรวมถึงกลุ่ม

5

ใช้รูปแบบด่วน

ลองรูปแบบสำเร็จรูปสำหรับงานทั่วไป เช่น การตรวจสอบอีเมลหรือ URL

คำถามที่พบบ่อย

Regular expression คือลำดับของตัวอักษรที่ใช้นิยามรูปแบบการค้นหา คุณสามารถใช้มันเพื่อหาข้อความที่ตรงกับรูปแบบ ตรวจสอบว่าอินพุตเป็นไปตามรูปแบบที่กำหนด สกัดส่วนเฉพาะของสตริง หรือแทนที่ส่วนประกอบของข้อความ ตัวอย่างเช่น: /\d{4}-\d{2}-\d{2}/ จะจับคู่กับวันที่ในรูปแบบ YYYY-MM-DD; /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ ใช้ตรวจสอบที่อยู่อีเมล; /https?:\/\/[^\s]+/g จะหา URL ทั้งหมดในบล็อกข้อความ Regex รองรับโดยพื้นฐานใน JavaScript, Python, PHP, Ruby, Java, Go และเกือบทุกภาษาโปรแกรมอื่นๆ

g (global): ค้นหาการจับคู่ทั้งหมด ไม่ใช่แค่ตำแหน่งแรก หากไม่มี g ตัว regex จะคืนค่าเฉพาะการจับคู่แรกเท่านั้น i (case insensitive): "hello" จะจับคู่กับ "Hello", "HELLO", "hElLo" m (multiline): ^ และ $ จะจับคู่กับจุดเริ่มต้น/จุดสิ้นสุดของแต่ละบรรทัดแทนที่จะเป็นทั้งสตริง หากไม่มี m ตัว ^ จะจับคู่กับจุดเริ่มต้นของอินพุตเท่านั้น s (dotAll / single-line): จุด . ปกติจะจับคู่กับตัวอักษรใดก็ได้ยกเว้นการขึ้นบรรทัดใหม่ — เมื่อใช้ s มันจะจับคู่กับการขึ้นบรรทัดใหม่ด้วย เครื่องมือนี้ทำงานบน JavaScript ดังนั้น flags ที่ใช้งานได้คือกลุ่มที่รองรับโดยการทำงานของ RegExp ใน JavaScript

Numbered capture groups: วงเล็บ () ในรูปแบบของคุณจะจับคู่ข้อความที่ตรงกันซึ่งคุณสามารถอ้างอิงได้ด้วยดัชนี เช่น $1, $2 เป็นต้น ตัวอย่างเช่น (\d{4})-(\d{2})-(\d{2}) บน "2026-03-15" จะจับปีเป็นกลุ่ม 1, เดือนเป็นกลุ่ม 2 และวันเป็นกลุ่ม 3 Named capture groups: (?<name>pattern) จะกำหนดป้ายกำกับให้กับกลุ่ม ทำให้สามารถเข้าถึงได้ผ่าน match.groups.name ใน JavaScript ตัวอย่างเช่น: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) ชื่อกลุ่มจะอ่านง่ายกว่าและไม่พังเมื่อคุณเพิ่มกลุ่มอื่นในรูปแบบเดียวกัน Non-capturing groups (?:pattern) คือการจัดกลุ่มโดยไม่มีการจับคู่ มีประโยชน์เมื่อคุณต้องการกลุ่มสำหรับการเลือกทางเลือก (a|b) แต่ไม่ต้องการค่าจากการจับคู่

สาเหตุที่พบบ่อยที่สุดคือ: (1) ลืมใส่ g flag — หากไม่มีมันจะหาเฉพาะการจับคู่แรก และตัวนับจะแสดงเป็น 1 ทั้งที่คุณคาดหวังมากกว่านั้น (2) ไม่ได้ใส่ escape ให้กับตัวอักษรพิเศษ — ใน regex จุด . จะจับคู่กับตัวอักษรใดก็ได้ แต่ \. จะจับคู่กับจุดจริงๆ เช่นเดียวกับ \( \) สำหรับวงเล็บ และ \[ \] สำหรับเครื่องหมายปีกกา (3) ใช้ anchors ผิด — ^ และ $ หากไม่มี m flag จะจับคู่กับจุดเริ่มต้น/สิ้นสุดของทั้งสตริง ไม่ใช่ต่อบรรทัด (4) ความโลภของ Quantifier — .* จะจับคู่ให้มากที่สุดเท่าที่เป็นไปได้ ซึ่งมักจะกินส่วนที่คุณต้องการจับคู่ ให้ใช้ .*? สำหรับแบบ non-greedy (5) รูปแบบของคุณต้องการอินพุตมากกว่าที่คุณระบุ — ลองทดสอบความถูกต้องด้วย sub-pattern ที่เรียบง่ายกว่า

Catastrophic backtracking เกิดขึ้นเมื่อ regex ที่มี Quantifiers ซ้อนกันทำให้เกิดความซับซ้อนของเวลาแบบเอกซ์โพเนนเชียลกับอินพุตบางอย่าง ตัวอย่างคลาสสิกคือ: (a+)+ เมื่อนำไปใช้กับ "aaaaaab" — เครื่องยนต์จะพยายามหาทุกวิธีที่เป็นไปได้ในการแยก a's ระหว่างกลุ่มที่ซ้อนกันก่อนจะล้มเหลว ทำให้รูปแบบหยุดทำงาน คุณสามารถทดสอบสิ่งนี้ในตัวตรวจสอบเพื่อดูผลลัพธ์ วิธีป้องกัน: หลีกเลี่ยง Quantifiers ซ้อนกันบนรูปแบบที่ทับซ้อนกัน ใช้ Possessive quantifiers หรือ Atomic groups เมื่อมีการรองรับ และระบุให้ชัดเจนว่าแต่ละส่วนจะจับคู่กับอะไร หากคุณพบว่าตัวตรวจสอบไม่ตอบสนอง รูปแบบของคุณอาจเกิด Catastrophic backtracking — ให้รีเฟรชหน้าเว็บและทำให้รูปแบบเรียบง่ายขึ้น

Lookaheads และ Lookbehinds จะจับคู่ตำแหน่งโดยพิจารณาจากสิ่งที่อยู่ก่อนหน้าหรือตามหลัง โดยไม่รวมบริบทนั้นในการจับคู่ Positive lookahead (?=...): \w+(?=@) จับคู่คำที่อยู่ก่อนหน้า @ โดยไม่รวม @ Negative lookahead (?!...): \d+(?!\.\d) จับคู่ตัวเลขที่ไม่ตามด้วยจุดทศนิยม Positive lookbehind (?<=...): (?<=\$)\d+ จับคู่ตัวเลขที่มี $ อยู่ข้างหน้า Negative lookbehind (?<!...): (?<!\d)\d+ จับคู่ตัวเลขที่ไม่มีตัวเลขอยู่ข้างหน้า JavaScript รองรับทั้งสี่แบบตั้งแต่ ES2018 รวมถึง variable-length lookbehind ในบราวเซอร์สมัยใหม่

ใช่ เครื่องมือนี้ใช้ RegExp engine พื้นฐานของ JavaScript ดังนั้นรูปแบบและ flags ทั้งหมดจึงเฉพาะสำหรับ JavaScript รูปแบบของ JavaScript จะใกล้เคียงกับ Perl-compatible regex (PCRE) แต่มีความแตกต่างบางประการ: ไม่มี Possessive quantifiers (ไวยากรณ์ a++), Limited lookbehind (variable-length lookbehind เพิ่มใน ES2018) และการจัดการ Unicode ที่ต่างกัน หากคุณกำลังเขียน Python regex โปรดทราบว่า Python ใช้ \A และ \Z แทน ^ และ $ สำหรับ string anchors และใช้ Raw strings (r"pattern") เพื่อหลีกเลี่ยงการ escape ซ้ำซ้อน สำหรับ PHP (PCRE) หรือ Java regex รูปแบบส่วนใหญ่จะเข้ากันได้กับ JavaScript แต่ให้ตรวจสอบไวยากรณ์ของ delimiter และ flag

ไม่ เครื่องมือนี้รันการจับคู่ regex ทั้งหมดในบราวเซอร์ของคุณโดยใช้ Native RegExp engine ของ JavaScript รูปแบบและสตริงทดสอบของคุณจะไม่หลุดออกจากอุปกรณ์ของคุณเลย

ตัวทดสอบและดีบักเกอร์ Regex ออนไลน์

Regex เป็นสิ่งที่ทุกคนต้อง google ทุกครั้ง วางรูปแบบ วางข้อความ แล้วดูการจับคู่ไฮไลต์ทันที ไม่ต้องเดาอีกแล้วว่ารูปแบบถูกไหม คุณจะรู้แบบเรียลไทม์

การจับคู่รูปแบบนิพจน์ทั่วไป

ดีบัก regex โดยไม่มี feedback ที่ดีนั้นเจ็บปวด ตัวทดสอบนี้แสดงกลุ่มจับ ตำแหน่งการจับคู่ และสถิติการทำงาน เพื่อให้คุณเข้าใจว่าทำไมรูปแบบไม่จับสิ่งที่คาดหวัง

รูปแบบ Regex ด่วนสำหรับงานทั่วไป

จำรูปแบบตรวจสอบอีเมลไม่ได้? หรือวิธีจับคู่ URL? คลิกรูปแบบด่วนแล้วโหลด regex ทั่วไปสำหรับอีเมล URL โทรศัพท์ IP และวันที่ด้วยคลิกเดียว ประหยัดเวลาไม่ต้องไป Stack Overflow

ความปลอดภัยและความเป็นส่วนตัว

ความปลอดภัยของข้อมูลของคุณคือความสำคัญอันดับแรกของเรา

การประมวลผลภายใน

การประมวลผลทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณ

ไม่มีการถ่ายโอนข้อมูล

ข้อมูลของคุณจะไม่ถูกส่งไปยังเซิร์ฟเวอร์ของเรา

ไม่มีการจัดเก็บข้อมูล

ไม่มีข้อมูลถูกเก็บหรือแบ่งปัน

การเข้ารหัส SSL

การเข้ารหัส SSL สำหรับการเชื่อมต่อที่ปลอดภัย

ขั้นตอนถัดไป

อีกมากมายใน MoreOnlineTools