রেজেক্সে অক্ষর শ্রেণির সংজ্ঞা কীভাবে কাজ করে তা আপনি ভুল বুঝে গেছেন বলে মনে হয়।
স্ট্রিং কোনো মেলে 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, অথবা 12, এই কাজ ভালো কিছু:
0[1-9]|1[0-2]
তথ্যসূত্র
ব্যাখ্যা
একটি অক্ষর শ্রেণি নিজে থেকে ইনপুট স্ট্রিং থেকে একটি এবং ঠিক একটি অক্ষরের সাথে মেলে চেষ্টা করে । [01-12]আসলে সংজ্ঞায়িত [012], একটি অক্ষর বর্গ যে 3 টি অক্ষর কোন বিরুদ্ধে ইনপুট থেকে একটি অক্ষর মিলে যায় 0, 1অথবা 2।
-পরিসর সংজ্ঞা থেকে যায় 1কাছে 1, যা শুধু অন্তর্ভুক্ত 1। অন্যদিকে, কিছু [1-9]অন্তর্ভুক্ত 1, 2, 3, 4, 5, 6, 7, 8, 9।
প্রাথমিকভাবে প্রায়শই জিনিসগুলি সংজ্ঞায়িত করার ভুল করে [this|that]। এটি "কাজ" করে না। এই অক্ষর সংজ্ঞা সংজ্ঞায়িত [this|a], IE এতে 6 অক্ষর কোন বিরুদ্ধে ইনপুট থেকে একটি অক্ষর মিলে যায় t, h, i, s, |বা a। সম্ভাবনার চেয়ে বেশি (this|that)হ'ল উদ্দেশ্য is
তথ্যসূত্র
রেঞ্জগুলি কীভাবে সংজ্ঞায়িত করা হয়
সুতরাং এটি এখন সুস্পষ্ট যে একটি প্যাটার্নটি between [24-48] hours"কাজ করে না" like এই ক্ষেত্রে চরিত্র শ্রেণি সমান [248]।
এটি হ'ল -একটি চরিত্রের শ্রেণীর সংজ্ঞা প্যাটার্নে সংখ্যার পরিসীমা নির্ধারণ করে না। সীমাবদ্ধ পুনরাবৃত্তি বাক্য গঠন (যেমন a{3,5}3 এবং 5 এর মধ্যে ম্যাচ a) ব্যতীত রেজেক্স ইঞ্জিনগুলি প্যাটার্নে প্রকৃতপক্ষে সংখ্যাকে "বুঝতে" পারে না ।
ব্যাপ্তি সংজ্ঞা পরিবর্তে ব্যাপ্তিগুলি সংজ্ঞায়িত করতে অক্ষরগুলির ASCII / ইউনিকোড এনকোডিং ব্যবহার করে। অক্ষরটি 0দশমিক 48 হিসাবে ASCII এ এনকোড করা হয়েছে; 957. সুতরাং, অক্ষর সংজ্ঞায় [0-9]এমন সমস্ত অক্ষর অন্তর্ভুক্ত থাকে যার মান দশমিক 48 এবং 57 এর মধ্যে এনকোডিংয়ের মধ্যে। বরং বুদ্ধিমানের, নকশা দ্বারা এই অক্ষর 0, 1, ..., 9।
আরো দেখুন
আর একটি উদাহরণ: এ টু জেড
আসুন আরেকটি সাধারণ চরিত্র শ্রেণির সংজ্ঞাটি একবার দেখে নিই [a-zA-Z]
এএসসিআইআইতে:
A= 65, Z= 90
a= 97, z= 122
এই যে মানে:
[a-zA-Z]এবং [A-Za-z]সমতুল্য
- বেশিরভাগ স্বাদে,
[a-Z]এটি একটি অবৈধ চরিত্রের ব্যাপ্তি হতে পারে
- কারণ
a() Z৯) (90) এর চেয়ে "বড়"
[A-z] আইনী, তবে এই ছয়টি অক্ষরও অন্তর্ভুক্ত রয়েছে:
[(91), \(92), ](93), ^(94), _(95), `(96)
সম্পর্কিত প্রশ্নাবলী
[a-z0-9]করুন:, এটি সমস্ত ছোট হাতের অক্ষর এবং সমস্ত সংখ্যার সাথে মেলে তবে কেবল একটি একক চরিত্র হিসাবে।