DevToys Pro

бесплатные веб-инструменты для разработчиков

Блог
Оцените нас:
Попробуйте расширение для браузера:

Тестер XSD Regex паттернов

XSD Паттерн

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

Преобразованный паттерн

Приблизительный эквивалент JavaScript regex (только для отображения). Фактическое сопоставление использует библиотеку xspattern для точной поддержки XSD regex.
^[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)
    \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

    Экранированные символы

    \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.
    Технические детали

    Как работает тестер 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 паттерны переводятся для целей тестирования.