Tester wzorców RegEx XSD
Wzorzec XSD
Przekonwertowany wzorzec
^[A-Z]{2}[0-9]{3}$Ciąg testowy
Wynik
AB123Referencja składni wyrażeń regularnych XSD
Klasy znaków
| . | 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) |
Kwantyfikatory
| 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) |
Grupy
| (abc) | Capturing group |
| (?:abc) | Non-capturing group |
| a|b | Match a or b |
Znaki ucieczki
| \t | Tab |
| \n | Newline |
| \r | Carriage return |
| \xhh | Hex character |
| \uhhhh | Unicode character |
Ważne różnice względem 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. |
Szczegóły techniczne
Jak działa tester wzorców regex XSD
Co robi narzędzie
Tester wzorców regex XSD umożliwia testowanie wzorców regex z definicji XML Schema Definition (XSD) na przykładowym tekście. Wzorce regex XSD różnią się od regex JavaScript na kilka istotnych sposobów: domyślnie dopasowują cały ciąg (niejawne kotwice ^ i $), nie obsługują asercji lookahead/lookbehind oraz mają specyficzne reguły składni dla walidacji XML. To narzędzie konwertuje wzorce XSD na regex zgodny z JavaScript na potrzeby testów, jednocześnie wyjaśniając różnice. Jest przydatne dla programistów pracujących ze schematami XML, walidacją XSD i przetwarzaniem danych XML, którzy muszą testować ograniczenia wzorców zdefiniowane w plikach XSD.
Typowe zastosowania dla programistów
Programiści korzystają z testerów wzorców XSD podczas pracy z definicjami XML Schema, które zawierają ograniczenia regex. Wzorce XSD są powszechnie używane do walidacji zawartości elementów XML, takich jak adresy e-mail, daty, identyfikatory lub niestandardowe formaty. Podczas definiowania schematów XSD programiści muszą testować swoje ograniczenia wzorców, aby upewnić się, że poprawnie walidują oczekiwane dane wejściowe, jednocześnie odrzucając nieprawidłowe dane. Narzędzie pomaga zweryfikować, że wzorce takie jak [A-Z][0-9] poprawnie dopasowują formaty takie jak "AB123", ale odrzucają "ab123" lub "ABC123". Testery wzorców XSD są niezbędne w tworzeniu schematów XML, walidacji danych i zapewnianiu zgodności ze standardami XML.
Kluczowe różnice względem regex JavaScript
Wzorce regex XSD mają kilka istotnych różnic w porównaniu z regex JavaScript. Po pierwsze, wzorce XSD domyślnie dopasowują cały ciąg, więc nie trzeba dodawać kotwic ^ i $. Wzorzec [A-Z] automatycznie dopasowuje tylko ciągi, które składają się dokładnie z dwóch wielkich liter. Po drugie, XSD nie obsługuje asercji lookahead ((?=...)) ani lookbehind ((?<=...)). Po trzecie, XSD obsługuje kategorie Unicode, takie jak \p{L} dla liter oraz \p{N} dla liczb, które w JavaScript wymagają flagi Unicode. XSD ma też specjalne sekwencje, takie jak \i i \c dla znaków nazw XML, które nie są dostępne w regex JavaScript.
Przykłady wzorców XSD
Typowe wzorce XSD obejmują formaty dat, takie jak \d{4}-\d{2}-\d{2} dla dat YYYY-MM-DD, wzorce identyfikatorów, takie jak [A-Z][0-9] dla dwóch liter, po których następują trzy cyfry, oraz wzorce Unicode, takie jak \p{L}+ dla jednej lub większej liczby liter Unicode. Narzędzie pokazuje, jak te wzorce są konwertowane na regex JavaScript oraz czy testowe ciągi dopasowują cały wzorzec (pełne dopasowanie), czy tylko częściowo (częściowe dopasowanie). Ponieważ wzorce XSD muszą dopasowywać cały ciąg, częściowe dopasowania wskazują, że wzorzec nie waliduje w pełni danych wejściowych.
Dobre praktyki
Podczas testowania wzorców XSD pamiętaj, że walidują one całe ciągi, a nie podciągi. Wzorzec taki jak \d+ dopasuje tylko ciągi składające się wyłącznie z cyfr, a nie ciągi zawierające cyfry. Używaj odpowiednio klas znaków i kwantyfikatorów: [A-Za-z]+ dopasowuje jedną lub więcej liter, a [A-Za-z]* dopasowuje zero lub więcej liter. W walidacji XML testuj zarówno poprawne, jak i niepoprawne dane wejściowe, aby upewnić się, że wzorce prawidłowo akceptują oczekiwane dane, jednocześnie odrzucając błędne wejście. Narzędzie wyświetla przekonwertowany wzorzec regex JavaScript, dzięki czemu możesz zobaczyć, jak wzorce XSD są tłumaczone na potrzeby testowania.