Тестер шаблонів 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 кількома важливими моментами: за замовчуванням вони зіставляють увесь рядок (неявні якорі ^ і $), не підтримують перевірки 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
XSD regex мають кілька важливих відмінностей від регулярних виразів JavaScript. По-перше, XSD-шаблони за замовчуванням зіставляють увесь рядок, тож не потрібно додавати якорі ^and $anchors. Шаблон [A-Z] автоматично зіставляє лише рядки, що є рівно двома великими літерами. По-друге, XSD не підтримує перевірки lookahead ( (?=...)) або lookbehind ( (?<=...)). По-третє, XSD підтримує категорії Unicode, як-от \p{L}for letters і \p{N}for numbers, для яких у JavaScript потрібен прапорець Unicode. XSD також має спеціальні послідовності, як-от \iand \cfor XML name characters, яких немає в регулярних виразах JavaScript.
Приклади XSD-шаблонів
Поширені XSD-шаблони включають формати дат, як-от \d{4}-\d{2}-\d{2} для дат YYYY-MM-DD, шаблони ідентифікаторів, як-от [A-Z][0-9] для двох літер, за якими йдуть три цифри, а також Unicode-шаблони, як-от \p{L}+ для однієї або більше Unicode-літер. Інструмент показує, як ці шаблони перетворюються на регулярні вирази JavaScript і чи тестові рядки відповідають усьому шаблону (повний збіг) чи лише частково (частковий збіг). Оскільки XSD-шаблони мають зіставляти весь рядок, часткові збіги означають, що шаблон не повністю валідовує введення.
Найкращі практики
Під час тестування XSD-шаблонів пам’ятайте, що вони валідовують цілі рядки, а не підрядки. Шаблон на кшталт \d+will only match strings that are entirely digits, not strings containing digits. Використовуйте класи символів і квантифікатори доречно: [A-Za-z]+ зіставляє одну або більше літер, тоді як [A-Za-z]* зіставляє нуль або більше літер. Для XML-валідації тестуйте як коректні, так і некоректні введення, щоб переконатися, що ваші шаблони правильно приймають очікувані дані та відхиляють неправильно сформоване введення. Інструмент відображає перетворений шаблон регулярного виразу JavaScript, щоб ви могли бачити, як XSD-шаблони перекладаються для цілей тестування.