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 шаблони ви позволява да тествате 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 ( (?&lt;=...)) проверки. Трето, 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 шаблоните се превеждат за целите на тестването.