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 Regex Pattern Tester কীভাবে কাজ করে
টুলটি কী করে
XSD regex pattern tester আপনাকে নমুনা টেক্সটের বিপরীতে XML Schema Definition (XSD) রেজেক্স প্যাটার্ন পরীক্ষা করতে দেয়। XSD রেজেক্স প্যাটার্ন JavaScript রেজেক্স থেকে কয়েকটি গুরুত্বপূর্ণ দিক দিয়ে আলাদা: ডিফল্টভাবে পুরো স্ট্রিং ম্যাচ করে (ইমপ্লিসিট ^ এবং $ অ্যাঙ্কর), lookahead/lookbehind assertion সাপোর্ট করে না, এবং XML ভ্যালিডেশনের জন্য নির্দিষ্ট সিনট্যাক্স নিয়ম আছে। এই টুলটি পার্থক্যগুলো ব্যাখ্যা করতে করতে XSD প্যাটার্নকে টেস্টিংয়ের জন্য JavaScript-কম্প্যাটিবল রেজেক্সে রূপান্তর করে। XML স্কিমা, XSD ভ্যালিডেশন, এবং XML ডেটা প্রসেসিং নিয়ে কাজ করা ডেভেলপারদের জন্য এটি উপকারী, যাদের XSD ফাইলে সংজ্ঞায়িত প্যাটার্ন কনস্ট্রেইন্ট পরীক্ষা করতে হয়।
ডেভেলপারদের সাধারণ ব্যবহারক্ষেত্র
রেজেক্স কনস্ট্রেইন্টসহ XML Schema ডেফিনিশন নিয়ে কাজ করার সময় ডেভেলপাররা XSD প্যাটার্ন টেস্টার ব্যবহার করেন। XSD প্যাটার্ন সাধারণত XML এলিমেন্ট কনটেন্ট ভ্যালিডেট করতে ব্যবহৃত হয়, যেমন ইমেইল ঠিকানা, তারিখ, আইডি, বা কাস্টম ফরম্যাট। XSD স্কিমা সংজ্ঞায়িত করার সময়, ডেভেলপারদের তাদের প্যাটার্ন কনস্ট্রেইন্ট পরীক্ষা করতে হয় যাতে তা প্রত্যাশিত ইনপুট সঠিকভাবে ভ্যালিডেট করে এবং অবৈধ ডেটা প্রত্যাখ্যান করে। এই টুলটি যাচাই করতে সাহায্য করে যে [A-Z][0-9]-এর মতো প্যাটার্ন "AB123"-এর মতো ফরম্যাট সঠিকভাবে ম্যাচ করে, কিন্তু "ab123" বা "ABC123" প্রত্যাখ্যান করে। XML স্কিমা ডেভেলপমেন্ট, ডেটা ভ্যালিডেশন, এবং XML স্ট্যান্ডার্ডের সাথে সামঞ্জস্য নিশ্চিত করতে XSD প্যাটার্ন টেস্টার অপরিহার্য।
JavaScript Regex থেকে প্রধান পার্থক্যগুলো
XSD রেজেক্স প্যাটার্নের সাথে JavaScript রেজেক্সের কয়েকটি গুরুত্বপূর্ণ পার্থক্য আছে। প্রথমত, XSD প্যাটার্ন ডিফল্টভাবে পুরো স্ট্রিং ম্যাচ করে, তাই আপনাকে ^ এবং $ অ্যাঙ্কর যোগ করতে হয় না। [A-Z] প্যাটার্নটি স্বয়ংক্রিয়ভাবে কেবল সেই স্ট্রিংগুলোই ম্যাচ করে যেগুলো ঠিক দুইটি বড় হাতের অক্ষর। দ্বিতীয়ত, XSD lookahead ( (?=...)) বা lookbehind ( (?<=...)) assertion সাপোর্ট করে না। তৃতীয়ত, XSD অক্ষরের জন্য \p{L} এবং সংখ্যার জন্য \p{N}-এর মতো Unicode ক্যাটাগরি সাপোর্ট করে, যেগুলোর জন্য JavaScript-এ Unicode ফ্ল্যাগ দরকার। XSD-তে XML নামের অক্ষরের জন্য \i এবং \c-এর মতো বিশেষ সিকোয়েন্সও আছে, যা JavaScript রেজেক্সে পাওয়া যায় না।
XSD প্যাটার্নের উদাহরণ
সাধারণ XSD প্যাটার্নের মধ্যে রয়েছে YYYY-MM-DD তারিখের জন্য \d{4}-\d{2}-\d{2}-এর মতো ডেট ফরম্যাট, তিনটি ডিজিটসহ দুইটি অক্ষরের জন্য [A-Z][0-9]-এর মতো আইডেন্টিফায়ার প্যাটার্ন, এবং এক বা একাধিক Unicode অক্ষরের জন্য \p{L}+-এর মতো Unicode প্যাটার্ন। টুলটি দেখায় কীভাবে এই প্যাটার্নগুলো JavaScript রেজেক্সে রূপান্তরিত হয় এবং টেস্ট স্ট্রিংগুলো পুরো প্যাটার্ন (full match) নাকি আংশিকভাবে (partial match) ম্যাচ করে। যেহেতু XSD প্যাটার্নকে পুরো স্ট্রিং ম্যাচ করতে হয়, partial match মানে প্যাটার্নটি ইনপুটকে সম্পূর্ণভাবে ভ্যালিডেট করছে না।
সেরা অনুশীলন
XSD প্যাটার্ন টেস্ট করার সময় মনে রাখবেন, এগুলো সাবস্ট্রিং নয়—পুরো স্ট্রিং ভ্যালিডেট করে। \d+-এর মতো প্যাটার্ন কেবল সেই স্ট্রিংগুলোই ম্যাচ করবে যেগুলো সম্পূর্ণভাবে ডিজিট, ডিজিট রয়েছে এমন স্ট্রিং নয়। ক্যারেক্টার ক্লাস এবং কোয়ান্টিফায়ার যথাযথভাবে ব্যবহার করুন: [A-Za-z]+ এক বা একাধিক অক্ষর ম্যাচ করে, আর [A-Za-z]* শূন্য বা একাধিক অক্ষর ম্যাচ করে। XML ভ্যালিডেশনের জন্য, বৈধ এবং অবৈধ—দুই ধরনের ইনপুটই টেস্ট করুন যাতে আপনার প্যাটার্নগুলো প্রত্যাশিত ডেটা গ্রহণ করে এবং বিকৃত ইনপুট প্রত্যাখ্যান করে। টুলটি রূপান্তরিত JavaScript রেজেক্স প্যাটার্ন দেখায়, যাতে আপনি দেখতে পারেন টেস্টিংয়ের উদ্দেশ্যে XSD প্যাটার্ন কীভাবে অনুবাদ করা হয়েছে।