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

Тестер шаблонов XSD Regex

Шаблон XSD

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

Преобразованный шаблон

Приблизительный эквивалент регулярного выражения JavaScript (только для отображения). Фактическое сопоставление использует библиотеку xspattern для точной поддержки 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)
    \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 существенно отличаются от JavaScript regex: по умолчанию они сопоставляют всю строку целиком (неявные якоря ^ и $), не поддерживают проверки lookahead/lookbehind и имеют специфические правила синтаксиса для XML-валидации. Этот инструмент преобразует XSD-шаблоны в совместимые с JavaScript регулярные выражения для тестирования, одновременно объясняя различия. Он полезен разработчикам, работающим с XML-схемами, XSD-валидацией и обработкой XML-данных, которым нужно проверять ограничения шаблонов, заданные в XSD-файлах.

    Распространенные сценарии использования для разработчиков

    Разработчики используют тестеры XSD-шаблонов при работе с определениями XML Schema, содержащими regex-ограничения. Шаблоны XSD часто применяются для проверки содержимого XML-элементов, например адресов электронной почты, дат, идентификаторов или пользовательских форматов. При создании XSD-схем разработчикам нужно тестировать ограничения шаблонов, чтобы убедиться, что они корректно принимают ожидаемый ввод и отклоняют неверные данные. Инструмент помогает проверить, что шаблоны вроде [A-Z][0-9] корректно сопоставляют форматы вроде "AB123", но отклоняют "ab123" или "ABC123". Тестеры XSD-шаблонов важны для разработки XML-схем, валидации данных и обеспечения соответствия стандартам XML.

    Ключевые отличия от JavaScript Regex

    Регулярные выражения XSD имеют несколько важных отличий от JavaScript regex. Во‑первых, XSD-шаблоны по умолчанию сопоставляют всю строку целиком, поэтому не нужно добавлять якоря ^ и $. Шаблон [A-Z] автоматически сопоставляет только строки, которые состоят ровно из двух заглавных букв. Во‑вторых, XSD не поддерживает проверки lookahead ( (?=...)) и lookbehind ( (?&lt;=...)). В‑третьих, XSD поддерживает категории Unicode, такие как \p{L} для букв и \p{N} для чисел, которые в JavaScript требуют Unicode-флага. В 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-шаблоны переводятся для целей тестирования.