ตัวทดสอบแพตเทิร์น Regex ของ XSD
แพตเทิร์น XSD
แพตเทิร์นที่แปลงแล้ว
^[A-Z]{2}[0-9]{3}$สตริงทดสอบ
ผลลัพธ์
AB123เอกสารอ้างอิงไวยากรณ์ Regex ของ XSD
คลาสอักขระ
| . | Any character |
| [abc] | Match a, b, or c |
| [^abc] | Match anything except a, b, c |
| [a-z] | Character range (a to z) |
| \d | Digit (0-9) |
| \D | Non-digit |
| \s | Whitespace |
| \S | Non-whitespace |
| \p{L} | Unicode letter category(\p{L} (with 'u' flag)) |
| \p{N} | Unicode number category(\p{N} (with 'u' flag)) |
| \i | XML initial name character (XSD only, supported by xspattern) |
| \c | XML name character (XSD only, supported by xspattern) |
| [a-z-[aeiou]] | Character class subtraction (XSD only, supported by xspattern) |
ตัวระบุจำนวน
| a* | 0 or more |
| a+ | 1 or more |
| a? | 0 or 1 (optional) |
| a{n} | Exactly n times |
| a{n,} | n or more times |
| a{n,m} | Between n and m times |
| a*? | 0 or more (non-greedy) |
| a+? | 1 or more (non-greedy) |
กลุ่ม
| (abc) | Capturing group |
| (?:abc) | Non-capturing group |
| a|b | Match a or b |
อักขระที่มีการ Escape
| \t | Tab |
| \n | Newline |
| \r | Carriage return |
| \xhh | Hex character |
| \uhhhh | Unicode character |
ความแตกต่างสำคัญจาก JavaScript
| No anchors | XSD patterns match entire string by default (implicit ^ and $). xspattern handles this correctly. |
| No lookahead/lookbehind | XSD does not support (?=...), (?!...), (?<=...), (?<!...) |
| Unicode categories | XSD supports \p{L}, \p{N}, etc. xspattern supports Unicode 15.0. |
| XML name chars | XSD has \i and \c for XML name characters. xspattern supports these. |
| Character class subtraction | XSD supports [a-z-[aeiou]] syntax. xspattern fully supports this feature. |
รายละเอียดทางเทคนิค
เครื่องมือทดสอบแพตเทิร์น Regex ของ XSD ทำงานอย่างไร
เครื่องมือนี้ทำอะไร
เครื่องมือทดสอบแพตเทิร์น regex ของ XSD ช่วยให้คุณทดสอบแพตเทิร์น regex ของ XML Schema Definition (XSD) กับข้อความตัวอย่างได้ แพตเทิร์น regex ของ XSD แตกต่างจาก regex ของ JavaScript ในหลายประเด็นสำคัญ: โดยค่าเริ่มต้นจะจับคู่ทั้งสตริง (มีจุดยึด ^ และ $ แบบแฝง), ไม่รองรับการยืนยันแบบ lookahead/lookbehind และมีกฎไวยากรณ์เฉพาะสำหรับการตรวจสอบ XML เครื่องมือนี้จะแปลงแพตเทิร์น XSD ให้เป็น regex ที่เข้ากันได้กับ JavaScript เพื่อใช้ทดสอบ พร้อมอธิบายความแตกต่าง เหมาะสำหรับนักพัฒนาที่ทำงานกับสคีมา XML, การตรวจสอบ XSD และการประมวลผลข้อมูล XML ที่ต้องทดสอบข้อจำกัดของแพตเทิร์นที่กำหนดไว้ในไฟล์ XSD
กรณีการใช้งานทั่วไปของนักพัฒนา
นักพัฒนาใช้เครื่องมือทดสอบแพตเทิร์น XSD เมื่อทำงานกับนิยาม XML Schema ที่มีข้อจำกัดแบบ regex แพตเทิร์น XSD มักใช้เพื่อตรวจสอบเนื้อหาขององค์ประกอบ XML เช่น อีเมล วันที่ รหัส (ID) หรือรูปแบบที่กำหนดเอง เมื่อกำหนดสคีมา XSD นักพัฒนาจำเป็นต้องทดสอบข้อจำกัดของแพตเทิร์นเพื่อให้แน่ใจว่าสามารถตรวจสอบอินพุตที่คาดหวังได้อย่างถูกต้อง พร้อมทั้งปฏิเสธข้อมูลที่ไม่ถูกต้อง เครื่องมือนี้ช่วยยืนยันว่าแพตเทิร์นอย่าง [A-Z][0-9] จับคู่รูปแบบอย่าง "AB123" ได้ถูกต้อง แต่ปฏิเสธ "ab123" หรือ "ABC123" เครื่องมือทดสอบแพตเทิร์น XSD เป็นสิ่งจำเป็นสำหรับการพัฒนาสคีมา XML การตรวจสอบข้อมูล และการทำให้สอดคล้องตามมาตรฐาน XML
ความแตกต่างสำคัญจาก Regex ของ JavaScript
แพตเทิร์น regex ของ XSD มีความแตกต่างสำคัญหลายประการจาก regex ของ JavaScript ประการแรก แพตเทิร์น XSD จะจับคู่ทั้งสตริงโดยค่าเริ่มต้น ดังนั้นคุณไม่จำเป็นต้องเพิ่มจุดยึด ^ และ $ แพตเทิร์น [A-Z] จะจับคู่เฉพาะสตริงที่เป็นตัวอักษรพิมพ์ใหญ่สองตัวแบบพอดีโดยอัตโนมัติ ประการที่สอง XSD ไม่รองรับการยืนยันแบบ lookahead ((?=...)) หรือ lookbehind ((?<=...)) ประการที่สาม XSD รองรับหมวดหมู่ Unicode เช่น \p{L} สำหรับตัวอักษร และ \p{N} สำหรับตัวเลข ซึ่งใน JavaScript ต้องใช้แฟล็ก Unicode นอกจากนี้ XSD ยังมีลำดับพิเศษอย่าง \i และ \c สำหรับอักขระชื่อ XML ที่ไม่มีใน regex ของ JavaScript
ตัวอย่างแพตเทิร์น XSD
แพตเทิร์น XSD ที่พบบ่อย ได้แก่ รูปแบบวันที่อย่าง \d{4}-\d{2}-\d{2} สำหรับวันที่แบบ YYYY-MM-DD, แพตเทิร์นตัวระบุอย่าง [A-Z][0-9] สำหรับตัวอักษรสองตัวตามด้วยตัวเลขสามหลัก และแพตเทิร์น Unicode อย่าง \p{L}+ สำหรับตัวอักษร Unicode ตั้งแต่หนึ่งตัวขึ้นไป เครื่องมือนี้จะแสดงว่าแพตเทิร์นเหล่านี้ถูกแปลงเป็น regex ของ JavaScript อย่างไร และสตริงทดสอบจับคู่ทั้งแพตเทิร์น (full match) หรือจับคู่เพียงบางส่วน (partial match) เนื่องจากแพตเทิร์น XSD ต้องจับคู่ทั้งสตริง การจับคู่เพียงบางส่วนจึงบ่งชี้ว่าแพตเทิร์นไม่ได้ตรวจสอบอินพุตได้ครบถ้วน
แนวทางปฏิบัติที่ดีที่สุด
เมื่อทดสอบแพตเทิร์น XSD โปรดจำไว้ว่าแพตเทิร์นจะตรวจสอบทั้งสตริง ไม่ใช่สตริงย่อย แพตเทิร์นอย่าง \d+ จะจับคู่เฉพาะสตริงที่เป็นตัวเลขทั้งหมดเท่านั้น ไม่ใช่สตริงที่มีตัวเลขปะปนอยู่ ใช้คลาสอักขระและตัวบอกจำนวน (quantifiers) ให้เหมาะสม: [A-Za-z]+ จับคู่ตัวอักษรตั้งแต่หนึ่งตัวขึ้นไป ขณะที่ [A-Za-z]* จับคู่ตัวอักษรตั้งแต่ศูนย์ตัวขึ้นไป สำหรับการตรวจสอบ XML ให้ทดสอบทั้งอินพุตที่ถูกต้องและไม่ถูกต้องเพื่อให้แน่ใจว่าแพตเทิร์นของคุณยอมรับข้อมูลที่คาดหวังได้อย่างถูกต้อง พร้อมทั้งปฏิเสธอินพุตที่ผิดรูปแบบ เครื่องมือนี้จะแสดงแพตเทิร์น regex ของ JavaScript ที่ถูกแปลงแล้ว เพื่อให้คุณเห็นว่าแพตเทิร์น XSD ถูกแปลเพื่อการทดสอบอย่างไร