Тестер за XSD Regex шаблони
XSD шаблон
Преобразуван шаблон
^[A-Z]{2}[0-9]{3}$Тестов низ
Резултат
AB123Справочник за синтаксиса на 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 |
Екранирани символи
| \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. |
Технически подробности
Как работи тестерът за XSD regex шаблони
Какво прави инструментът
Тестерът за XSD regex шаблони ви позволява да тествате regex шаблони от XML Schema Definition (XSD) спрямо примерен текст. XSD regex шаблоните се различават от JavaScript regex по няколко важни начина: по подразбиране съвпадат с целия низ (неявни котви ^ и $), не поддържат lookahead/lookbehind проверки и имат специфични синтактични правила за XML валидация. Този инструмент преобразува XSD шаблоните в JavaScript-съвместим regex за тестване, като същевременно обяснява разликите. Полезен е за разработчици, работещи с XML схеми, XSD валидация и обработка на XML данни, които трябва да тестват ограниченията на шаблоните, дефинирани в XSD файлове.
Често срещани случаи на употреба от разработчици
Разработчиците използват тестери за XSD шаблони, когато работят с XML Schema дефиниции, които включват regex ограничения. XSD шаблоните често се използват за валидиране на съдържанието на XML елементи, като имейл адреси, дати, идентификатори или персонализирани формати. При дефиниране на XSD схеми разработчиците трябва да тестват ограниченията на шаблоните си, за да се уверят, че коректно валидират очаквания вход, като същевременно отхвърлят невалидни данни. Инструментът помага да се провери, че шаблони като [A-Z][0-9] правилно съвпадат с формати като "AB123", но отхвърлят "ab123" или "ABC123". Тестерите за XSD шаблони са ключови за разработка на XML схеми, валидиране на данни и гарантиране на съответствие с XML стандартите.
Ключови разлики спрямо JavaScript Regex
XSD regex шаблоните имат няколко важни разлики спрямо JavaScript regex. Първо, XSD шаблоните по подразбиране съвпадат с целия низ, така че не е нужно да добавяте котви ^ и $. Шаблонът [A-Z] автоматично съвпада само с низове, които са точно две главни букви. Второ, XSD не поддържа lookahead ( (?=...)) или lookbehind ( (?<=...)) проверки. Трето, XSD поддържа Unicode категории като \p{L} за букви и \p{N} за числа, които изискват Unicode флаг в JavaScript. XSD също има специални последователности като \i и \c за XML символи в имена, които не са налични в JavaScript regex.
Примери за XSD шаблони
Често срещани XSD шаблони включват формати за дати като \d{4}-\d{2}-\d{2} за дати YYYY-MM-DD, шаблони за идентификатори като [A-Z][0-9] за две букви, последвани от три цифри, и Unicode шаблони като \p{L}+ за една или повече Unicode букви. Инструментът показва как тези шаблони се преобразуват в JavaScript regex и дали тестовите низове съвпадат с целия шаблон (пълно съвпадение) или само частично (частично съвпадение). Тъй като XSD шаблоните трябва да съвпадат с целия низ, частичните съвпадения показват, че шаблонът не валидира напълно входа.
Добри практики
Когато тествате XSD шаблони, помнете, че те валидират цели низове, а не поднизове. Шаблон като \d+ ще съвпадне само с низове, които са изцяло цифри, а не с низове, съдържащи цифри. Използвайте класове символи и квантификатори по подходящ начин: [A-Za-z]+ съвпада с една или повече букви, докато [A-Za-z]* съвпада с нула или повече букви. За XML валидация тествайте както валидни, така и невалидни входове, за да сте сигурни, че шаблоните ви правилно приемат очакваните данни и отхвърлят неправилно форматиран вход. Инструментът показва преобразувания JavaScript regex шаблон, за да видите как XSD шаблоните се превеждат за целите на тестването.