تستر الگوی Regex در XSD
الگوی XSD
الگوی تبدیلشده
^[A-Z]{2}[0-9]{3}$رشته آزمایشی
نتیجه
AB123مرجع نحو Regex در XSD
کلاسهای کاراکتری
| . | 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 |
کاراکترهای Escapeشده
| \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. |
جزئیات فنی
آزمونگر الگوی Regex در XSD چگونه کار میکند
این ابزار چه کاری انجام میدهد
آزمونگر الگوی regex در XSD به شما اجازه میدهد الگوهای regex در XML Schema Definition (XSD) را در برابر متن نمونه آزمایش کنید. الگوهای regex در XSD از چند جهت مهم با regex جاوااسکریپت تفاوت دارند: بهطور پیشفرض کل رشته را تطبیق میدهند (لنگرهای ضمنی ^ و $)، از assertionهای lookahead/lookbehind پشتیبانی نمیکنند و قوانین نحوی مشخصی برای اعتبارسنجی XML دارند. این ابزار ضمن توضیح تفاوتها، الگوهای XSD را برای آزمایش به regex سازگار با جاوااسکریپت تبدیل میکند. این ابزار برای توسعهدهندگانی که با شِماهای XML، اعتبارسنجی XSD و پردازش دادهٔ XML کار میکنند و نیاز دارند محدودیتهای الگو تعریفشده در فایلهای XSD را آزمایش کنند، مفید است.
موارد استفادهٔ رایج برای توسعهدهندگان
توسعهدهندگان هنگام کار با تعریفهای XML Schema که شامل محدودیتهای regex هستند از آزمونگرهای الگوی XSD استفاده میکنند. الگوهای XSD معمولاً برای اعتبارسنجی محتوای عناصر XML به کار میروند؛ مانند آدرسهای ایمیل، تاریخها، شناسهها یا قالبهای سفارشی. هنگام تعریف شِماهای XSD، توسعهدهندگان باید محدودیتهای الگوی خود را آزمایش کنند تا مطمئن شوند ورودیِ مورد انتظار را درست اعتبارسنجی میکنند و در عین حال دادهٔ نامعتبر را رد میکنند. این ابزار کمک میکند بررسی شود الگوهایی مانند [A-Z][0-9] بهدرستی قالبهایی مثل "AB123" را تطبیق میدهند اما "ab123" یا "ABC123" را رد میکنند. آزمونگرهای الگوی XSD برای توسعهٔ شِمای XML، اعتبارسنجی داده و تضمین انطباق با استانداردهای XML ضروری هستند.
تفاوتهای کلیدی با Regex جاوااسکریپت
الگوهای regex در XSD چند تفاوت مهم با regex جاوااسکریپت دارند. اول اینکه الگوهای XSD بهطور پیشفرض کل رشته را تطبیق میدهند، بنابراین نیازی نیست لنگرهای ^and $anchors را اضافه کنید. الگوی [A-Z] بهصورت خودکار فقط رشتههایی را تطبیق میدهد که دقیقاً دو حرف بزرگ لاتین هستند. دوم اینکه XSD از assertionهای lookahead ( (?=...)) یا lookbehind ( (?<=...)) پشتیبانی نمیکند. سوم اینکه XSD از دستهبندیهای یونیکد مانند \p{L}for letters و \p{N}for numbers پشتیبانی میکند که در جاوااسکریپت به پرچم Unicode نیاز دارند. XSD همچنین توالیهای ویژهای مانند \iand \cfor XML name characters دارد که در regex جاوااسکریپت موجود نیستند.
نمونههای الگوی XSD
الگوهای رایج XSD شامل قالبهای تاریخ مانند \d{4}-\d{2}-\d{2} برای تاریخهای YYYY-MM-DD، الگوهای شناسه مانند [A-Z][0-9] برای دو حرف و سپس سه رقم، و الگوهای یونیکد مانند \p{L}+ برای یک یا چند حرف یونیکد هستند. این ابزار نشان میدهد این الگوها چگونه به regex جاوااسکریپت تبدیل میشوند و آیا رشتههای آزمایشی کل الگو را تطبیق میدهند (تطبیق کامل) یا فقط بخشی از آن را (تطبیق جزئی). از آنجا که الگوهای XSD باید کل رشته را تطبیق دهند، تطبیقهای جزئی نشان میدهد الگو ورودی را بهطور کامل اعتبارسنجی نمیکند.
بهترین روشها
هنگام آزمایش الگوهای XSD، به یاد داشته باشید که آنها کل رشتهها را اعتبارسنجی میکنند، نه زیررشتهها را. الگویی مانند \d+will only match strings that are entirely digits, not strings containing digits. از کلاسهای کاراکتری و کمیتگذارها بهدرستی استفاده کنید: [A-Za-z]+ یک یا چند حرف را تطبیق میدهد، در حالی که [A-Za-z]* صفر یا چند حرف را تطبیق میدهد. برای اعتبارسنجی XML، هم ورودیهای معتبر و هم نامعتبر را آزمایش کنید تا مطمئن شوید الگوهای شما دادهٔ مورد انتظار را درست میپذیرند و ورودیِ بدقالب را رد میکنند. این ابزار الگوی regex تبدیلشدهٔ جاوااسکریپت را نمایش میدهد تا ببینید الگوهای XSD برای اهداف آزمایش چگونه ترجمه میشوند.