ตัวสร้าง Regex จากตัวอย่าง
การเขียน regex ด้วยมือสำหรับเลขที่คำสั่งซื้อ เลขอ้างอิงใบแจ้งหนี้ หรือวันที่ นั้นยุ่งยากและผิดพลาดได้ง่าย วางสตริงตัวอย่างหนึ่งชุดในรูปแบบที่คุณต้องการจับคู่ เครื่องมือนี้จะอ่านจากซ้ายไปขวา แปลงลำดับของตัวเลข อักษรตัวใหญ่ และอักษรตัวเล็กแต่ละชุดให้เป็นคลาสอักขระที่มีความยาวเหมาะสม และคงเครื่องหมายวรรคตอนและสัญลักษณ์ไว้เป็นอักขระตามตัวอักษร คุณจะได้แพตเทิร์นที่มีจุดยึดเป็นจุดเริ่มต้นเพื่อปรับแต่งด้วยมือต่อไป
วิธีทำงาน
-
1
ป้อนตัวอย่าง
พิมพ์หรือวางสตริงตัวอย่างหนึ่งชุดที่แทนรูปแบบที่คุณต้องการจับคู่ เช่น `Order #12345 placed on 2026-04-16`
-
2
สร้างแพตเทิร์น
เครื่องมือจะไล่อ่านตัวอย่างทีละอักขระ และแทนลำดับอักขระชนิดเดียวกันแต่ละชุดด้วยคลาสอักขระที่มีความยาวของมัน
-
3
อ่านการแยกส่วน
ใต้แพตเทิร์นมีรายการองค์ประกอบอธิบายแต่ละส่วน เพื่อให้คุณเห็นว่าส่วนใดจับคู่ตัวเลข ตัวอักษร หรือข้อความตามตัวอักษร
-
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 ใด ๆ ไม่ว่าจะให้ตัวอย่างกี่ชุด สำหรับโครงสร้างซ้อน คุณต้องใช้ตัวแยกวิเคราะห์ ไม่ใช่แพตเทิร์น
ขั้นตอนการทำงานที่ดี
- สร้างแพตเทิร์นจากตัวอย่างที่ชัดเจนและเป็นตัวแทนหนึ่งชุด
- ผ่อนคลายความยาวคงที่ (
{5}เป็น+หรือ{3,8}) ในจุดที่ความยาวเปลี่ยนแปลง - วางแพตเทิร์นลงในตัวทดสอบ Regex พร้อมชุดสตริงจริงที่ใหญ่ขึ้น
- ปรับจนกว่ามันจะจับคู่ทุกอย่างที่ควร และไม่จับคู่สิ่งที่ไม่ควรเลย
คำถามที่พบบ่อย
หนึ่งชุด ตัวสร้างอ่านสตริงตัวอย่างชุดเดียวและสะท้อนโครงสร้างของมัน เลือกสตริงที่แทนรูปแบบของคุณได้ดีที่สุด แล้วขยายแพตเทิร์นด้วยมือสำหรับกรณีอื่น ๆ
เครื่องมือนับจำนวนอักขระที่แน่นอนในตัวอย่างของคุณ ตัวเลขห้าหลักจึงกลายเป็น \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 และอื่น ๆ
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- مولّد Regex من عيّنة [AR]
- Générateur de Regex à partir d'un exemple [FR]
- 샘플로 정규식 생성 [KO]
- Generator Regex dari Contoh [ID]
- Regex-Generator aus Beispiel [DE]
- Generator Regex z przykładu [PL]
- Regex-generator uit voorbeeld [NL]
- Regex-generator från exempel [SV]
- サンプルから正規表現を生成 [JA]
- Trình tạo Regex từ mẫu [VI]
- Generador de Regex a partir de una muestra [ES]
- Gerador de Regex a partir de um exemplo [PT]
- Örnekten Regex Oluşturucu [TR]
- 从示例生成正则 [ZH]
- Regex Generator from Sample [EN]
- Generatore di Regex da un esempio [IT]
- Генератор Regex из примера [RU]