XSD 정규식 패턴 테스터
XSD 패턴
변환된 패턴
^[A-Z]{2}[0-9]{3}$테스트 문자열
결과
AB123XSD 정규식 구문 참조
문자 클래스
| . | 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 정규식 패턴 테스터의 작동 방식
도구가 하는 일
XSD 정규식 패턴 테스터는 XML 스키마 정의(XSD)의 정규식 패턴을 샘플 텍스트에 대해 테스트할 수 있게 해줍니다. XSD 정규식 패턴은 JavaScript 정규식과 몇 가지 중요한 점에서 다릅니다. 기본적으로 전체 문자열을 매칭합니다(암묵적인 ^ 및 $ 앵커), 전방/후방 탐색(lookahead/lookbehind) 단언을 지원하지 않으며, XML 검증을 위한 특정 문법 규칙이 있습니다. 이 도구는 XSD 패턴을 테스트할 수 있도록 JavaScript 호환 정규식으로 변환하면서 그 차이점을 설명합니다. XSD 파일에 정의된 패턴 제약을 테스트해야 하는 XML 스키마, XSD 검증, XML 데이터 처리 작업을 하는 개발자에게 유용합니다.
개발자들이 흔히 사용하는 사례
개발자는 정규식 제약이 포함된 XML 스키마 정의를 다룰 때 XSD 패턴 테스터를 사용합니다. XSD 패턴은 이메일 주소, 날짜, ID 또는 사용자 정의 형식과 같은 XML 요소 콘텐츠를 검증하는 데 흔히 사용됩니다. XSD 스키마를 정의할 때 개발자는 패턴 제약이 예상 입력을 올바르게 검증하면서 잘못된 데이터를 거부하는지 확인하기 위해 테스트해야 합니다. 이 도구는 [A-Z][0-9] 같은 패턴이 "AB123" 같은 형식은 올바르게 매칭하지만 "ab123" 또는 "ABC123"은 거부하는지 검증하는 데 도움을 줍니다. XSD 패턴 테스터는 XML 스키마 개발, 데이터 검증, 그리고 XML 표준 준수 보장에 필수적입니다.
JavaScript 정규식과의 핵심 차이점
XSD 정규식 패턴은 JavaScript 정규식과 몇 가지 중요한 차이가 있습니다. 첫째, XSD 패턴은 기본적으로 전체 문자열을 매칭하므로 ^와 $ 앵커를 추가할 필요가 없습니다. [A-Z] 패턴은 자동으로 정확히 두 개의 대문자만으로 이루어진 문자열만 매칭합니다. 둘째, XSD는 전방 탐색((?=...)) 또는 후방 탐색((?<=...)) 단언을 지원하지 않습니다. 셋째, XSD는 문자에 대한 \p{L}, 숫자에 대한 \p{N} 같은 유니코드 범주를 지원하는데, 이는 JavaScript에서 유니코드 플래그가 필요합니다. 또한 XSD에는 JavaScript 정규식에는 없는 XML 이름 문자용 특수 시퀀스인 \i와 \c가 있습니다.
XSD 패턴 예시
일반적인 XSD 패턴에는 YYYY-MM-DD 날짜를 위한 \d{4}-\d{2}-\d{2} 같은 날짜 형식, 두 글자 뒤에 세 자리 숫자가 오는 식별자 패턴인 [A-Z][0-9], 하나 이상의 유니코드 문자를 위한 \p{L}+ 같은 유니코드 패턴이 포함됩니다. 이 도구는 이러한 패턴이 JavaScript 정규식으로 어떻게 변환되는지와 테스트 문자열이 전체 패턴에 매칭되는지(전체 매칭) 또는 일부만 매칭되는지(부분 매칭)를 보여줍니다. XSD 패턴은 전체 문자열과 매칭되어야 하므로, 부분 매칭은 해당 패턴이 입력을 완전히 검증하지 못한다는 것을 의미합니다.
모범 사례
XSD 패턴을 테스트할 때는 부분 문자열이 아니라 전체 문자열을 검증한다는 점을 기억하세요. \d+ 같은 패턴은 숫자를 포함한 문자열이 아니라, 전체가 숫자로만 이루어진 문자열에만 매칭됩니다. 문자 클래스와 수량자를 적절히 사용하세요. [A-Za-z]+는 하나 이상의 문자를 매칭하고, [A-Za-z]*는 0개 이상의 문자를 매칭합니다. XML 검증을 위해 유효한 입력과 무효한 입력을 모두 테스트하여, 패턴이 예상 데이터를 올바르게 허용하면서 잘못된 입력은 거부하는지 확인하세요. 이 도구는 변환된 JavaScript 정규식 패턴을 표시하므로, 테스트 목적을 위해 XSD 패턴이 어떻게 번역되는지 확인할 수 있습니다.