مختبر أنماط Regex لـ XSD
نمط 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) |
| \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. |
التفاصيل التقنية
كيف يعمل مختبِر نمط Regex في XSD
ما الذي تفعله الأداة
يتيح لك مختبِر نمط regex في XSD اختبار أنماط regex الخاصة بتعريف مخطط XML (XSD) مقابل نص تجريبي. تختلف أنماط regex في XSD عن regex في JavaScript بعدة طرق مهمة: فهي تطابق السلسلة كاملةً افتراضيًا (مرساة ^ و$ ضمنيًا)، ولا تدعم تأكيدات النظرة للأمام/للخلف (lookahead/lookbehind)، ولها قواعد صياغة محددة للتحقق من XML. تقوم هذه الأداة بتحويل أنماط XSD إلى regex متوافق مع JavaScript لأغراض الاختبار مع شرح الفروقات. وهي مفيدة للمطورين الذين يعملون مع مخططات XML والتحقق من XSD ومعالجة بيانات XML ويحتاجون إلى اختبار قيود الأنماط المعرّفة في ملفات XSD.
حالات استخدام شائعة للمطورين
يستخدم المطورون مختبرات أنماط XSD عند العمل مع تعريفات مخطط XML التي تتضمن قيود regex. تُستخدم أنماط XSD عادةً للتحقق من محتوى عناصر XML، مثل عناوين البريد الإلكتروني والتواريخ والمعرّفات أو التنسيقات المخصصة. عند تعريف مخططات XSD، يحتاج المطورون إلى اختبار قيود الأنماط للتأكد من أنها تتحقق بشكل صحيح من الإدخال المتوقع مع رفض البيانات غير الصالحة. تساعد الأداة في التحقق من أن أنماطًا مثل [A-Z][0-9] تطابق بشكل صحيح تنسيقات مثل "AB123" لكنها ترفض "ab123" أو "ABC123". تُعد مختبرات أنماط XSD ضرورية لتطوير مخطط XML والتحقق من البيانات وضمان الامتثال لمعايير XML.
الاختلافات الرئيسية عن Regex في JavaScript
توجد عدة اختلافات مهمة بين أنماط تعبيرات XSD النمطية وتعبيرات JavaScript النمطية. أولاً، تطابق أنماط XSD السلسلة كاملةً افتراضياً، لذا لا تحتاج إلى إضافة مراسي ^و $. النمط [A-Z] يطابق تلقائياً فقط السلاسل التي تتكون بالضبط من حرفين كبيرين. ثانياً، لا يدعم XSD تأكيدات النظرة المستقبلية ( (?=...)) أو النظرة الخلفية ( (?<=...)). ثالثاً، يدعم XSD فئات يونيكود مثل \p{L} للحروف و \p{N} للأرقام، والتي تتطلب علم Unicode في JavaScript. كما يحتوي XSD على تسلسلات خاصة مثل \iو \c لأحرف أسماء XML غير المتاحة في تعبيرات JavaScript النمطية.
أمثلة على أنماط XSD
تشمل أنماط XSD الشائعة تنسيقات التاريخ مثل \d{4}-\d{2}-\d{2} لتواريخ YYYY-MM-DD، وأنماط المعرّفات مثل [A-Z][0-9] لحرفين يتبعهما ثلاثة أرقام، وأنماط يونيكود مثل \p{L}+ لحرف يونيكود واحد أو أكثر. تُظهر الأداة كيفية تحويل هذه الأنماط إلى تعبيرات JavaScript النمطية وما إذا كانت سلاسل الاختبار تطابق النمط بالكامل (تطابق كامل) أو جزئياً فقط (تطابق جزئي). وبما أن أنماط XSD يجب أن تطابق السلسلة كاملةً، فإن التطابقات الجزئية تشير إلى أن النمط لا يتحقق من صحة الإدخال بالكامل.
أفضل الممارسات
عند اختبار أنماط XSD، تذكّر أنها تتحقق من السلاسل كاملةً وليس من أجزاء منها. نمط مثل \d+ لن يطابق إلا السلاسل التي تتكون بالكامل من أرقام، وليس السلاسل التي تحتوي على أرقام. استخدم فئات الأحرف والمحدِّدات الكمية بشكل مناسب: [A-Za-z]+ يطابق حرفًا واحدًا أو أكثر، بينما [A-Za-z]* يطابق صفرًا أو أكثر من الحروف. للتحقق من XML، اختبر كلًا من المدخلات الصالحة وغير الصالحة لضمان أن أنماطك تقبل البيانات المتوقعة بشكل صحيح وترفض المدخلات غير السليمة. تعرض الأداة نمط regex المحوّل إلى JavaScript حتى تتمكن من رؤية كيفية ترجمة أنماط XSD لأغراض الاختبار.