ตัวสร้าง Regex จากตัวอย่าง

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

วิธีทำงาน

  1. 1

    ป้อนตัวอย่าง

    พิมพ์หรือวางสตริงตัวอย่างหนึ่งชุดที่แทนรูปแบบที่คุณต้องการจับคู่ เช่น `Order #12345 placed on 2026-04-16`

  2. 2

    สร้างแพตเทิร์น

    เครื่องมือจะไล่อ่านตัวอย่างทีละอักขระ และแทนลำดับอักขระชนิดเดียวกันแต่ละชุดด้วยคลาสอักขระที่มีความยาวของมัน

  3. 3

    อ่านการแยกส่วน

    ใต้แพตเทิร์นมีรายการองค์ประกอบอธิบายแต่ละส่วน เพื่อให้คุณเห็นว่าส่วนใดจับคู่ตัวเลข ตัวอักษร หรือข้อความตามตัวอักษร

  4. 4

    คัดลอกและปรับแต่ง

    ใช้แพตเทิร์นเป็นจุดเริ่มต้น ปรับความยาวคงที่หรือคลาสด้วยมือให้ครอบคลุมช่วงข้อมูลจริงของคุณทั้งหมด

แพตเทิร์นถูกสร้างขึ้นอย่างไร

เครื่องมืออ่านตัวอย่างจากซ้ายไปขวา เมื่อพบลำดับอักขระชนิดเดียวกัน มันจะสร้างคลาสอักขระที่มีขนาดเท่ากับลำดับนั้น:

  • ลำดับตัวเลขกลายเป็น \d{n} โดย n คือจำนวนตัวเลข
  • ลำดับอักษรตัวใหญ่ A-Z กลายเป็น [A-Z]{n}
  • ลำดับอักษรตัวเล็ก a-z กลายเป็น [a-z]{n}
  • ช่องว่างเดี่ยวกลายเป็น \s และช่องว่างหลายช่องกลายเป็น \s{n}
  • อย่างอื่นทั้งหมด (เครื่องหมายวรรคตอน สัญลักษณ์ ตัวอักษรที่มีเครื่องหมายกำกับเสียงหรือไม่ใช่อักษรละติน) จะคงไว้เป็นอักขระตามตัวอักษรที่ escape แล้ว

แพตเทิร์นที่เสร็จแล้วถูกครอบด้วย ^ และ $ เพื่อจับคู่สตริงทั้งหมดตั้งแต่ต้นจนจบ ไม่ใช่แค่บางส่วน

ตัวอย่าง

สำหรับตัวอย่าง Order #12345 placed on 2026-04-16 เครื่องมือสร้าง:

/^[A-Z]{1}[a-z]{4}\s\#\d{5}\s[a-z]{6}\s[a-z]{2}\s\d{4}\-\d{2}\-\d{2}$/

Order คืออักษรตัวใหญ่หนึ่งตัวตามด้วยอักษรตัวเล็กสี่ตัว; 12345 กลายเป็น \d{5}; และวันที่ 2026-04-16 กลายเป็น \d{4}\-\d{2}\-\d{2}

สิ่งที่ทำได้และทำไม่ได้

  • ความยาวคงที่ 12345 กลายเป็น \d{5} ซึ่งจับคู่ตัวเลขห้าหลักพอดี ไม่ใช่ “หนึ่งตัวหรือมากกว่า” หากจำนวนในข้อมูลของคุณเปลี่ยนแปลง ให้เปลี่ยน {5} เป็น + หรือช่วงเช่น {3,8} ด้วยมือ
  • ทำงานจากตัวอย่างเดียว มันสะท้อนโครงสร้างของสตริงเดียวที่คุณให้ จึงไม่สามารถสรุปทั่วไปจากหลายตัวอย่างได้ด้วยตัวเอง ให้สตริงที่เป็นตัวแทนมากที่สุด
  • มีเพียง A-Z และ a-z เท่านั้นที่นับเป็นตัวอักษร อักขระที่มีเครื่องหมายกำกับเสียงและไม่ใช่อักษรละตินจะคงไว้เป็นตามตัวอักษร ให้แทนที่ด้วยคลาสเช่น \w หรือ \p{L} หากต้องการให้จับคู่ชุดที่กว้างขึ้น
  • regex ไม่สามารถแสดงทุกอย่างได้ สิ่งอย่างวงเล็บที่สมดุลอยู่เหนือขอบเขตของ regex ใด ๆ ไม่ว่าจะให้ตัวอย่างกี่ชุด สำหรับโครงสร้างซ้อน คุณต้องใช้ตัวแยกวิเคราะห์ ไม่ใช่แพตเทิร์น

ขั้นตอนการทำงานที่ดี

  1. สร้างแพตเทิร์นจากตัวอย่างที่ชัดเจนและเป็นตัวแทนหนึ่งชุด
  2. ผ่อนคลายความยาวคงที่ ({5} เป็น + หรือ {3,8}) ในจุดที่ความยาวเปลี่ยนแปลง
  3. วางแพตเทิร์นลงในตัวทดสอบ Regex พร้อมชุดสตริงจริงที่ใหญ่ขึ้น
  4. ปรับจนกว่ามันจะจับคู่ทุกอย่างที่ควร และไม่จับคู่สิ่งที่ไม่ควรเลย

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

หนึ่งชุด ตัวสร้างอ่านสตริงตัวอย่างชุดเดียวและสะท้อนโครงสร้างของมัน เลือกสตริงที่แทนรูปแบบของคุณได้ดีที่สุด แล้วขยายแพตเทิร์นด้วยมือสำหรับกรณีอื่น ๆ

เครื่องมือนับจำนวนอักขระที่แน่นอนในตัวอย่างของคุณ ตัวเลขห้าหลักจึงกลายเป็น \d{5} หากจำนวนในข้อมูลจริงเปลี่ยนแปลง ให้แทน {5} ด้วย +, * หรือช่วงเช่น {3,8}

จุดยึดทำให้แพตเทิร์นจับคู่สตริงทั้งหมดตั้งแต่ต้นจนจบ ลบออกหากคุณต้องการค้นหาแพตเทิร์นภายในข้อความที่ยาวกว่า

มันรับรู้ A-Z และ a-z เป็นตัวอักษร อักขระอื่นใด รวมถึงตัวอักษรที่มีเครื่องหมายกำกับเสียง อักษรซีริลลิก หรือ CJK จะคงไว้เป็นตามตัวอักษร แทนที่ด้วยมือด้วยคลาสเช่น \w หรือ \p{L} หากต้องการจับคู่มากขึ้น

ไวยากรณ์มาตรฐาน (\d, [A-Z], {n}) ที่ทำงานได้โดยไม่ต้องแก้ไขใน PCRE, JavaScript, Python และเอนจินส่วนใหญ่

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

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig จากกฎการเยื้อง การจบบรรทัด และชุดอักขระของคุณ แล้วเพิ่มเซกชันที่ถูกต้องให้ทุกภาษาในรีโพซิทอรี ทั้ง Python, Go, YAML, Makefile และอื่น ๆ

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องมือนี้มีให้บริการในภาษาอื่น