Тестер XSD Regex паттернов
XSD Паттерн
Преобразованный паттерн
^[A-Z]{2}[0-9]{3}$Тестовая строка
Результат
AB123Справочник синтаксиса XSD Regex
Классы символов
| . | 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 паттернов позволяет тестировать паттерны регулярных выражений 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]2[0-9]3 правильно соответствуют форматам вроде "AB123", но отклоняют "ab123" или "ABC123". Тестеры XSD паттернов необходимы для разработки XML схем, валидации данных и обеспечения соответствия стандартам XML.
Ключевые отличия от JavaScript Regex
XSD regex паттерны имеют несколько важных отличий от JavaScript regex. Во-первых, XSD паттерны по умолчанию соответствуют всей строке, поэтому вам не нужно добавлять якоря ^ и $. Паттерн [A-Z]2 автоматически соответствует только строкам, которые состоят ровно из двух заглавных букв. Во-вторых, 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} для дат ГГГГ-ММ-ДД, паттерны идентификаторов вроде [A-Z]2[0-9]3 для двух букв, за которыми следуют три цифры, и Unicode паттерны вроде \p{L}+ для одной или более Unicode букв. Инструмент показывает, как эти паттерны преобразуются в JavaScript regex и соответствует ли тестовая строка всему паттерну (полное совпадение) или только частично (частичное совпадение). Поскольку XSD паттерны должны соответствовать всей строке, частичные совпадения указывают на то, что паттерн не полностью валидирует ввод.
Лучшие практики
При тестировании XSD паттернов помните, что они валидируют целые строки, а не подстроки. Паттерн вроде \d+ будет соответствовать только строкам, которые полностью состоят из цифр, а не строкам, содержащим цифры. Используйте классы символов и квантификаторы соответствующим образом: [A-Za-z]+ соответствует одной или более буквам, а [A-Za-z]* соответствует нулю или более буквам. Для валидации XML тестируйте как валидные, так и невалидные входные данные, чтобы убедиться, что ваши паттерны правильно принимают ожидаемые данные, отклоняя при этом неправильно сформированный ввод. Инструмент отображает преобразованный JavaScript regex паттерн, чтобы вы могли видеть, как XSD паттерны переводятся для целей тестирования.