ทดสอบ Regular Expression

ทดสอบและดีบัก regular expression ด้วยการจับคู่แบบเรียลไทม์ กลุ่มจับ และฟังก์ชันแทนที่

รูปแบบปัจจุบัน: /pattern/g

ป้อนรูปแบบ regex และข้อความทดสอบเพื่อเริ่มต้น!

รองรับฟีเจอร์และแฟล็ก regex ของ JavaScript ทั้งหมด

วิธีใช้งาน

ทดสอบ Regex (ตรวจสอบนิพจน์ทั่วไป/ตัวตรวจสอบรูปแบบ) เป็นเครื่องมือที่ทรงพลังสำหรับการทดสอบและดีบัก regular expressions ด้วยการจับคู่แบบเรียลไทม์ กลุ่มจับ การแทนที่ข้อความ และการสนับสนุนแฟล็กต่างๆ เครื่องมือตรวจสอบนิพจน์ทั่วไปนี้เหมาะสำหรับนักพัฒนาเว็บ วิศวกรข้อมูล และผู้ที่ต้องการทำงานกับรูปแบบข้อความที่ซับซ้อนด้วยตัวตรวจสอบรูปแบบที่แม่นยำ การทดสอบ RegEx ช่วยให้คุณสร้างและทดสอบรูปแบบได้อย่างมั่นใจ
1

ป้อนรูปแบบ regular expression ของคุณในช่อง 'รูปแบบ Regular Expression' โดยใช้ไวยากรณ์ JavaScript regex มาตรฐาน

2

เลือกแฟล็กที่เหมาะสมสำหรับรูปแบบของคุณ เช่น global (g), ignoreCase (i), multiline (m), dotAll (s), unicode (u), หรือ sticky (y)

3

ป้อนข้อความทดสอบในช่อง 'ข้อความทดสอบ' เพื่อดูการจับคู่แบบเรียลไทม์และไฮไลต์

4

ตรวจสอบผลลัพธ์การจับคู่ในพื้นที่แสดงผล พร้อมดูจำนวนการจับคู่และตำแหน่งที่พบ

5

หากรูปแบบมีกลุ่มจับ (capture groups) คุณจะเห็นรายละเอียดของแต่ละกลุ่มในส่วน 'กลุ่มจับ'

6

สำหรับรูปแบบที่มี named groups (?<name>pattern) ผลลัพธ์จะแสดงในส่วน 'กลุ่มที่มีชื่อ'

7

ใช้โหมดแทนที่โดยเปิด 'โหมดแทนที่' และป้อนข้อความแทนที่ที่รองรับ backreferences ($1, $2, $&, etc.)

8

คัดลอกผลลัพธ์หรือข้อความที่แทนที่แล้วโดยคลิกปุ่ม 'คัดลอก' เพื่อนำไปใช้ในโปรเจกต์ของคุณ

เคล็ดลับโปร

  • ใช้ raw strings หรือ escape backslashes อย่างเหมาะสมเมื่อทดสอบรูปแบบที่มี special characters
  • ทดสอบรูปแบบกับข้อมูลตัวอย่างหลากหลายเพื่อให้แน่ใจว่าครอบคลุมทุกกรณี
  • ใช้ quantifiers (+, *, ?, {n,m}) อย่างระมัดระวังเพื่อหลีกเลี่ยงการจับคู่ที่มากเกินไป
  • ใช้ character classes ([a-z], \d, \w) เพื่อทำให้รูปแบบอ่านง่ายและมีประสิทธิภาพ
  • ทดสอบ edge cases เช่น ข้อความว่าง บรรทัดเดียว หรือข้อความที่มี special Unicode characters
  • ใช้ non-capturing groups (?:) เมื่อคุณต้องการจัดกลุ่มแต่ไม่ต้องการเก็บผลลัพธ์
  • อย่าลืมทดสอบประสิทธิภาพด้วยข้อความขนาดใหญ่เพื่อหลีกเลี่ยง catastrophic backtracking

กรณีการใช้งาน

Regex Tester มีความหลากหลายในการใช้งานจริง ตั้งแต่การตรวจสอบรูปแบบข้อมูลไปจนถึงการแยกวิเคราะห์ log files และการรักษาความปลอดภัย:

การตรวจสอบข้อมูลในฟอร์มเว็บ

สร้างและทดสอบรูปแบบสำหรับการตรวจสอบอีเมล, หมายเลขโทรศัพท์, รหัสไปรษณีย์, และข้อมูลผู้ใช้อื่นๆ

ตัวอย่าง: รูปแบบเช่น ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ สำหรับการตรวจสอบอีเมล หรือ ^\+?[1-9]\d{1,14}$ สำหรับหมายเลขโทรศัพท์นานาชาติ

การแยกข้อมูลจาก Log Files

ใช้ regex เพื่อแยกวิเคราะห์ไฟล์ log ของเว็บเซิร์ฟเวอร์, แอปพลิเคชัน, หรือระบบ เพื่อหาข้อมูลสำคัญ

ตัวอย่าง: รูปแบบเช่น (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - - \[(.*?)\] "(.*?)" (\d+) (\d+) เพื่อแยก IP, timestamp, request, และ status code จาก Apache logs

การค้นหาและแทนที่ข้อความในโค้ด

ใช้ regex สำหรับการ refactoring โค้ด การเปลี่ยนชื่อตัวแปร, ฟังก์ชัน, หรือการแปลงรูปแบบโค้ด

ตัวอย่าง: ใช้ (function\s+)(\w+)(\s*\(.*?\)\s*\{) เพื่อหา JavaScript functions และแทนที่เป็น arrow functions หรือเปลี่ยนรูปแบบ naming convention

การตรวจสอบความปลอดภัยและ Input Sanitization

สร้างรูปแบบเพื่อตรวจหา SQL injection, XSS attacks, หรือ malicious input patterns ในระบบของคุณ

ตัวอย่าง: ใช้รูปแบบเช่น (script[^>]*>.*?</script>|javascript:|on\w+\s*=) เพื่อตรวจหา XSS attempts หรือ (union\s+select|drop\s+table|delete\s+from) สำหรับ SQL injection patterns

การประมวลผลข้อมูลและ Data Mining

แยกข้อมูลเฉพาะจากเอกสารขนาดใหญ่, CSV files, XML/JSON data หรือ unstructured text

ตัวอย่าง: ใช้ "([^"]*)","([^"]*)","([^"]*)","([^"]*)" เพื่อแยกข้อมูลจาก CSV หรือ <(\w+)[^>]*>(.*?)</\1> เพื่อแยก XML tags และ content

URL และ Web Scraping Pattern Matching

สร้างรูปแบบสำหรับการจับคู่ URLs, email addresses, hashtags, mentions หรือ social media patterns

ตัวอย่าง: ใช้ https?://[\w.-]+(:[0-9]+)?(/[\w._~:/?#[\]@!$&'()*+,;=-]*)? สำหรับ URLs หรือ @(\w+) สำหรับ Twitter mentions, #(\w+) สำหรับ hashtags

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

ความแตกต่างระหว่างแฟล็ก Global (g) และ Multiline (m) คืออะไร?

แฟล็ก Global (g) ทำให้ regex ค้นหาการจับคู่ทั้งหมดในข้อความ ไม่ใช่แค่การจับคู่แรกเท่านั้น ส่วนแฟล็ก Multiline (m) ทำให้ ^ และ $ จับคู่กับจุดเริ่มต้นและจุดสิ้นสุดของแต่ละบรรทัด ไม่ใช่แค่ทั้งสตริง

จะใช้ Named Capture Groups อย่างไรและมีประโยชน์อย่างไร?

Named Capture Groups ใช้ไวยากรณ์ (?<name>pattern) ช่วยให้อ้างอิงกลุ่มด้วยชื่อแทนหมายเลข ทำให้โค้ดอ่านง่ายและบำรุงรักษาได้ดีกว่า เช่น (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) สำหรับวันที่

Backtracking คืออะไรและจะหลีกเลี่ยง Catastrophic Backtracking ได้อย่างไร?

Backtracking เป็นกระบวนการที่ regex engine ย้อนกลับเพื่อลองเส้นทางการจับคู่อื่นเมื่อไม่สำเร็จ Catastrophic backtracking เกิดจากรูปแบบที่ซ้อนซ้อน เช่น (a+)+ หลีกเลี่ยงด้วยการใช้ possessive quantifiers หรือ atomic groups

จะใช้ Lookahead และ Lookbehind Assertions อย่างไรในการทดสอบ?

Positive lookahead (?=pattern) ตรวจสอบว่าตำแหน่งปัจจุบันตามด้วยรูปแบบที่กำหนด ส่วน Negative lookahead (?!pattern) ตรวจสอบว่าไม่ตามด้วยรูปแบบนั้น Lookbehind (?<=pattern) และ (?<!pattern) ทำงานในทิศทางตรงกันข้าม

รูปแบบใดบ้างที่เหมาะสำหรับการตรวจสอบรหัสผ่านที่แข็งแกร่ง?

ใช้ lookahead หลายตัวเพื่อตรวจสอบเงื่อนไขต่างๆ: (?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*])(?=.{8,}) ตรวจสอบตัวเล็ก ตัวใหญ่ ตัวเลข อักขระพิเศษ และความยาวขั้นต่ำ 8 ตัวอักษร

จะทดสอบ Unicode characters และ Emoji ด้วย Regex ได้อย่างไร?

ใช้แฟล็ก Unicode (u) และ character class ที่เหมาะสม เช่น \p{L} สำหรับตัวอักษร \p{N} สำหรับตัวเลข หรือ \p{Emoji} สำหรับ emoji ใช้ \u{1F600}-\u{1F64F} สำหรับ emoji range เฉพาะ

จะใช้ Regex กับ JSON หรือ XML parsing ได้หรือไม่?

แม้ว่า regex จะสามารถใช้กับ JSON/XML ได้ แต่ไม่แนะนำสำหรับการ parsing ที่ซับซ้อน เนื่องจากข้อจำกัดของ nested structures แนะนำให้ใช้ parser เฉพาะแทน และใช้ regex เฉพาะกับงาน extraction ง่ายๆ เท่านั้น

วิธีการดีบักรูปแบบ Regex ที่ซับซ้อนมีอะไรบ้าง?

แบ่งรูปแบบออกเป็นส่วนเล็กๆ และทดสอบทีละส่วน ใช้ online regex debuggers ที่มี step-by-step visualization เขียน comments ในรูปแบบยาวๆ และทดสอบกับข้อมูลตัวอย่างหลากหลาย

ประสิทธิภาพของ Regex ขึ้นอยู่กับอะไรและจะปรับปรุงได้อย่างไร?

ประสิทธิภาพขึ้นอยู่กับความซับซ้อนของรูปแบบ ขนาดข้อมูล และการใช้ quantifiers ปรับปรุงโดยการใช้ anchors (^ $) ให้เหมาะสม หลีกเลี่ยง greedy quantifiers ที่ไม่จำเป็น และใช้ character classes แทน alternatives เมื่อเป็นไปได้

ทำไมต้องใช้เครื่องมือนี้

RegEx Tester ให้ความสามารถในการพัฒนาแพทเทิร์นที่จำเป็นในการปรับปรุงเวิร์กโฟลว์การประมวลผลข้อความและรับประกันความแม่นยำของ regular expression ในแอปพลิเคชันและโปรเจกต์การพัฒนาระดับมืออาชีพ

  • การตรวจสอบและทดสอบแพทเทิร์นแบบเรียลไทม์ช่วยลดความไม่แน่นอนจากการพัฒนา regex โดยให้ข้อเสนอแนะทันทีเกี่ยวกับไวยากรณ์แพทเทิร์น พฤติกรรมการจับคู่ และกรณีขอบเขตก่อนที่จะนำไปใช้ในโค้ดจริง
  • การสนับสนุนแฟล็กที่ครอบคลุมช่วยให้สามารถควบคุมพฤติกรรมการจับคู่ได้อย่างแม่นยำด้วยตัวเลือก global, case-insensitive, multiline, dotAll, Unicode และ sticky สำหรับการจัดการความต้องการการประมวลผลข้อความที่หลากหลาย
  • การวิเคราะห์กลุ่มจับขั้นสูงพร้อมการแยกส่วนการจับคู่โดยละเอียดที่แสดงตำแหน่งที่แน่นอน ค่ากลุ่ม และการกำหนดกลุ่มที่มีชื่อสำหรับการแยกข้อมูลและการดีบักแพทเทิร์นที่มีประสิทธิภาพ
  • การไฮไลต์การจับคู่ด้วยภาพช่วยให้การตรวจสอบแพทเทิร์นเป็นไปอย่างใช้งานง่ายโดยแสดงส่วนข้อความที่ตรงกับแพทเทิร์นของคุณอย่างชัดเจน ทำให้ง่ายต่อการระบุการจับคู่ที่ไม่ตั้งใจหรือเนื้อหาที่ขาดหายไป
  • ฟีเจอร์การดีบักระดับมืออาชีพรวมถึงการรายงานข้อผิดพลาด การตรวจสอบไวยากรณ์แพทเทิร์น และสถิติการจับคู่โดยละเอียดช่วยระบุและแก้ไขปัญหาแพทเทิร์นอย่างรวดเร็วระหว่างการพัฒนา
  • อินเทอร์เฟซที่เป็นมิตรกับนักพัฒนาพร้อมการคัดลอกแพทเทิร์น การจับคู่ และผลลัพธ์ด้วยคลิกเดียวเพื่อการผสานรวมที่ราบรื่นเข้ากับตัวแก้ไขโค้ด เอกสาร และเวิร์กโฟลว์การพัฒนา
  • ความเข้ากันได้ของ JavaScript regex ข้ามแพลตฟอร์มช่วยให้แน่ใจว่าแพทเทิร์นที่พัฒนาและทดสอบในเครื่องมือนี้ทำงานได้อย่างสม่ำเสมอในเว็บเบราว์เซอร์ Node.js และสภาพแวดล้อม JavaScript อื่นๆ
  • คุณค่าทางการศึกษาสำหรับการเรียนรู้ไวยากรณ์และพฤติกรรมของ regex ผ่านการทดสอบเชิงโต้ตอบ ทำให้มีคุณค่าสำหรับการพัฒนาทักษะและการฝึกอบรมในเทคนิคการประมวลผลข้อความ

เครื่องมือที่เกี่ยวข้อง

เครื่องมือยอดนิยม

เครื่องสุ่มตัวเลข
สุ่มตัวเลขในช่วงที่กำหนด ครั้งละหนึ่งตัวหรือหลายตัว
รูเล็ตหมุน
พิมพ์ตัวเลือกแล้วหมุนวงล้อเพื่อสุ่มหนึ่งอย่าง
โยนเหรียญ
โยนเหรียญเสมือนครั้งละ 1 ถึง 100 เหรียญ แล้วนับจำนวนหัวและก้อย
ทอยลูกเต๋า
ทอยลูกเต๋าเสมือน เลือกจำนวนหน้า จำนวนลูก และแต้มบวกเพิ่มได้
เครื่องสุ่มสี
เลือกโทนและสุ่มสีได้หลายสีในครั้งเดียว พร้อมค่า HEX, RGB, HSL
สุ่มประเทศ
สุ่มประเทศจาก 194 ประเทศทั่วโลก ครั้งละหนึ่งหรือหลายประเทศ พร้อมธง เมืองหลวง และประชากร
แบบทดสอบธงชาติ
ทดสอบความรู้เรื่องธงชาติของโลกในเกมการศึกษาภูมิศาสตร์นี้
Pyeong ↔ ตร.ม.
แปลง pyeong เป็นตารางเมตรและกลับกันได้ทันที