DevToys Web Pro iconDevToys Web Proบล็อก
ให้คะแนนเรา:
ลองใช้ส่วนขยายเบราว์เซอร์:

ตัวทดสอบแพตเทิร์น Regex ของ XSD

แพตเทิร์น XSD

XSD patterns match the entire string by default (implicit ^ and $). Using xspattern for accurate XSD regex matching.

แพตเทิร์นที่แปลงแล้ว

เทียบเท่า regex ของ JavaScript แบบประมาณ (เพื่อการแสดงผลเท่านั้น) การจับคู่จริงใช้ไลบรารี xspattern เพื่อรองรับ regex ของ 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)
    \dDigit (0-9)
    \DNon-digit
    \sWhitespace
    \SNon-whitespace
    \p{L}Unicode letter category(\p{L} (with 'u' flag))
    \p{N}Unicode number category(\p{N} (with 'u' flag))
    \iXML initial name character (XSD only, supported by xspattern)
    \cXML 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|bMatch a or b

    อักขระที่มีการ Escape

    \tTab
    \nNewline
    \rCarriage return
    \xhhHex character
    \uhhhhUnicode character

    ความแตกต่างสำคัญจาก JavaScript

    No anchorsXSD patterns match entire string by default (implicit ^ and $). xspattern handles this correctly.
    No lookahead/lookbehindXSD does not support (?=...), (?!...), (?<=...), (?<!...)
    Unicode categoriesXSD supports \p{L}, \p{N}, etc. xspattern supports Unicode 15.0.
    XML name charsXSD has \i and \c for XML name characters. xspattern supports these.
    Character class subtractionXSD 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 ((?&lt;=...)) ประการที่สาม 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 ถูกแปลเพื่อการทดสอบอย่างไร