QuickATools

เครื่องมือนักพัฒนา · Free browser tool

ตัวทดสอบ Regex

ทดสอบและดีบักนิพจน์ปกติแบบเรียลไทม์พร้อมไฮไลต์ไวยากรณ์สด การจับกลุ่ม และการสลับแฟล็ก

Regular expression

Pattern between slashes · flags toggle on the right.

g
g Global — find all matchesi Ignore casem Multiline — ^/$ per line
Valid pattern/\b(\w+)@(\w+)\.(\w+)\b/g3 matches

Test string

Paste the text you want to match against.

107 characters

Highlighted matches

Matching regions are marked in amber below.

Contact us at hello@example.com or support@quickatools.com. Also try BAD@EMAIL (no TLD) and alice@site.org.

Match details

3 results
#MatchIndex$1$2$3
1hello@example.com1431helloexamplecom
2support@quickatools.com3558supportquickatoolscom
3alice@site.org92106alicesiteorg

Frequently Asked Questions

แฟล็ก g, i และ m ทำอะไรจริงๆ?

แฟล็ก g (global) หาทุกแมตช์ในสตริงแทนการหยุดหลังอันแรก แฟล็ก i (ignore case) ทำให้แพทเทิร์นไม่สนตัวพิมพ์ใหญ่-เล็ก ดังนั้น /hello/i แมตช์ "Hello" และ "HELLO" แฟล็ก m (multiline) เปลี่ยนพฤติกรรมของ ^ และ $ — เมื่อเปิด m พวกมันแมตช์ต้นและท้ายของแต่ละบรรทัดแทนต้นและท้ายของสตริงทั้งหมด สลับสดในเครื่องมือนี้เพื่อเห็นความต่างทันที

ความต่างระหว่างแมตช์กับกลุ่มจับคืออะไร?

แมตช์คือสตริงย่อยเต็มที่ผ่านแพทเทิร์นของคุณ กลุ่มจับคือชิ้นส่วนของแมตช์นั้นที่คุณ "บันทึก" โดยตั้งใจด้วยการห่อส่วนของแพทเทิร์นในวงเล็บ — เช่น /(\d{4})-(\d{2})-(\d{2})/ ที่แมตช์ "2026-08-07" ให้แมตช์หนึ่งตัว ("2026-08-07") และกลุ่มจับสามกลุ่ม ($1 = "2026", $2 = "08", $3 = "07") กลุ่มจับคือสิ่งที่คุณใช้ในการแทนที่หรือเมื่อดึงฟิลด์โครงสร้างจากข้อความ

เอนจิน RegExp ของ JavaScript ต่างจากรสชาติ regex อื่นอย่างไร?

JavaScript ใช้รสชาติอิง ECMAScript ซึ่งรองรับ lookaround กลุ่มที่มีชื่อ และการ escape คุณสมบัติ Unicode (ด้วยแฟล็ก u) แต่ไม่รองรับบางฟีเจอร์ที่พบใน PCRE หรือ .NET เช่น แพทเทิร์นแบบเรียกซ้ำหรือ quantifier แบบ possessive แพทเทิร์นที่คุณทดสอบที่นี่มีพฤติกรรมตรงกับในโค้ดเบราว์เซอร์หรือ Node.js — ดังนั้นหากแพทเทิร์นทำงานในเครื่องมือนี้ มันจะทำงานแบบเดียวกันในแอปพลิเคชัน JavaScript ของคุณ

ปลอดภัยไหมที่จะทดสอบ regex กับซอร์สโค้ดจริงหรือข้อมูลละเอียดอ่อนที่นี่?

ใช่ การคอมไพล์แพทเทิร์น การแมตช์ การไฮไลต์ และการสร้างรายงานทั้งหมดทำงานในเครื่องด้วยเอนจิน RegExp ในตัวของเบราว์เซอร์ — สิ่งที่คุณวางไม่ถูกอัปโหลด ล็อก หรือส่งไปเซิร์ฟเวอร์ จึงปลอดภัยที่จะดีบักแพทเทิร์นตรวจฟอร์มสมัคร กฎแยกล็อก หรือ regex ปิดบังกับข้อความตัวอย่างจริง (แม้ละเอียดอ่อน) โดยไม่เปิดเผยข้อความนั้นต่อบริการบุคคลที่สาม

สำรวจยูทิลิตี้ฟรีบนเบราว์เซอร์อื่นๆ สำหรับผู้ขาย ครีเอเตอร์ และมืออาชีพ

ทำไมฟีดแบ็ก Regex สดถึงชนะการดีบักแบบเดาแล้วรีโหลด

นิพจน์ปกติหนาแน่นโดยออกแบบ — การ escape ที่หาย quantifier ที่โลภ หรือแฟล็กผิดอาจแมตช์สิ่งผิด (หรือไม่แมตช์อะไรเลย) โดยเงียบๆ การดีบักด้วยการวางในโค้ดโปรดักชันแล้วรีโหลดช้าและเสี่ยง ตัวทดสอบสดที่ไฮไลต์ทุกแมตช์และแสดงแต่ละกลุ่มจับขณะที่คุณพิมพ์ย่อลูปฟีดแบ็กนั้นเหลือมิลลิวินาที เพื่อให้เห็นว่า ^, $ หรือกลุ่มซ้อนทำอะไรก่อนแพทเทิร์นจะถูกส่งออกจริง

ฟีดแบ็กนั้นยังสำคัญสำหรับกฎที่ละเอียดอ่อนด้านความปลอดภัย ตัวตรวจฟอร์มสมัคร แพทเทิร์นปิดบังล็อก และตัวกรองคอนเทนต์มักถูกทดสอบกับข้อมูลตัวอย่างจริง — อีเมล หมายเลขโทรศัพท์ หรือชิ้นส่วนอินพุตผู้ใช้ การส่งข้อความนั้นไปยังสนามเด็กเล่น regex บุคคลที่สามหมายถึงการไว้วางใจเซิร์ฟเวอร์ของพวกเขากับคอนเทนต์ที่คุณอาจไม่อยากให้ออกจากเครื่อง เครื่องมือนี้ไม่เคยอัปโหลดอะไร: การคอมไพล์แพทเทิร์น การแมตช์ การไฮไลต์ และรายงานแมตช์ทั้งหมดรันผ่านเอนจิน RegExp ในตัวของเบราว์เซอร์

เพราะเอนจินคือการใช้งาน ECMAScript ชุดเดียวกับที่เบราว์เซอร์และ Node.js ของคุณใช้ แพทเทิร์นที่ทำงานที่นี่จะมีพฤติกรรมแบบเดียวกันในแอปพลิเคชัน JavaScript ของคุณ — รวมถึงแฟล็กอย่าง g, i และ m เปลี่ยนการแมตช์อย่างไร และการนับกลุ่มจับอย่างไร ใช้แผงไฮไลต์สีอำพันเพื่อจับแมตช์ที่ไม่ได้ตั้งใจ และตารางแมตช์เพื่อยืนยันว่า $1, $2 และเพื่อนดึงฟิลด์ที่คุณคาดหวัง

ต้องการจัด JSON ตัวอย่างก่อนทดสอบกฎแยกวิเคราะห์? ใช้ตัวจัดรูปแบบและตรวจ JSON ถอดโทเคนที่เข้ารหัสก่อน? ลองเข้ารหัส/ถอดรหัส Base64 สร้าง ID ฟิกซ์เจอร์สำหรับชุดทดสอบ? ตัวสร้าง UUID/GUID ทำงานในเครื่องเช่นเดียวกับเครื่องมือนี้