আমি ভাবছিলাম যে আমি যদি একটি নিয়মিত এক্সপ্রেশন পাই যা কেবল একটি বর্ণানুক্রমিক অক্ষরযুক্ত এমন একটি স্ট্রিংয়ের সাথে মেলে তবে এটি that
àএকটি বর্ণানুক্রমিক অক্ষর আপনার সংজ্ঞা অনুযায়ী? আপনি কোন ভাষা ব্যবহার করছেন?
আমি ভাবছিলাম যে আমি যদি একটি নিয়মিত এক্সপ্রেশন পাই যা কেবল একটি বর্ণানুক্রমিক অক্ষরযুক্ত এমন একটি স্ট্রিংয়ের সাথে মেলে তবে এটি that
àএকটি বর্ণানুক্রমিক অক্ষর আপনার সংজ্ঞা অনুযায়ী? আপনি কোন ভাষা ব্যবহার করছেন?
উত্তর:
আপনি এই 2 টির কোনও রূপ ব্যবহার করতে পারেন:
/^[A-Z]+$/i
/^[A-Za-z]+$/
ASCII বর্ণমালাগুলির একটি ইনপুট স্ট্রিংয়ের সাথে মেলে।
[A-Za-z] সমস্ত বর্ণমালা (ছোট এবং বড় হাতের উভয়) মিলবে।^এবং $নিশ্চিত করবে যে এই বর্ণমালাগুলি ছাড়া আর কিছুই মিলবে না।কোড:
preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);
আউটপুট:
array(0) {
}
টেস্ট কেস ওপির মন্তব্যের জন্য যে ইনপুটটিতে 1 বা ততোধিক বর্ণমালা উপস্থিত থাকে তবেই সে মেলাতে চায় । আপনি যেমন পরীক্ষার ক্ষেত্রে দেখতে পাচ্ছেন যে ম্যাচগুলি ব্যর্থ হয়েছে কারণ সেখানে ^ইনপুট স্ট্রিং ছিল abcAbc^Xyz।
দ্রষ্টব্য: দয়া করে নোট করুন যে উপরের উত্তরটি কেবল ASCII বর্ণমালার সাথে মেলে এবং ইউনিকোডের অক্ষরগুলির সাথে মেলে না। আপনি যদি ইউনিকোডের অক্ষরগুলির সাথে মিল রাখতে চান তবে ব্যবহার করুন:
/^\p{L}+$/u
এখানে, \p{L}যে কোনও ভাষা থেকে যে কোনও ধরনের চিঠি মিলছে
\w is shorthand for A-Za-z- না সত্যিই, \wজন্য সাধারণভাবে সংক্ষেপে হয়[a-zA-Z0-9_]
আপনি যদি নন-এএসসিআইআই বর্ণমালা অক্ষর অন্তর্ভুক্ত করতে চান এবং যদি আপনার রেজেক্স স্বাদটি ইউনিকোড সমর্থন করে, তবে
\A\pL+\z
সঠিক regex হবে।
কিছু রিজেক্স ইঞ্জিন এই ইউনিকোড সিনট্যাক্সকে সমর্থন করে না তবে \wবর্ণমালার শর্টহ্যান্ডকে নন-এএসসিআইআই অক্ষরগুলিও মেলাতে দেয় । সেক্ষেত্রে আপনি \wএই জাতীয় থেকে বর্ণ এবং আন্ডারস্কোরগুলি বিয়োগ করে সমস্ত বর্ণমালা পেতে পারেন :
\A[^\W\d_]+\z
\Aস্ট্রিংয়ের শুরুতে, স্ট্রিংয়ের \zশেষে ম্যাচগুলি ( ^এবং $কিছু ভাষাতে রুবির মতো লাইনগুলির শুরু / শেষের সাথেও মিলছে বা নির্দিষ্ট রেজেক্স বিকল্পগুলি সেট করা থাকলে)।
এটি এক বা একাধিক বর্ণানুক্রমিক অক্ষরের সাথে মিলবে:
/^[a-z]+$/
আপনি এটিকে ব্যবহার করে সংবেদনশীল করতে পারেন:
/^[a-z]+$/i
বা:
/^[a-zA-Z]+$/
রুবি এবং অন্যান্য ভাষাগুলি যা বন্ধনী এক্সপ্রেশনগুলিতে POSIX অক্ষর ক্লাস সমর্থন করে, আপনি কেবল তা করতে পারেন:
/\A[[:alpha:]]+\z/i
এটি সমস্ত ইউনিকোড বর্ণমালা ভাষায় আলফা-অক্ষরের সাথে মিলবে। সহজ কিছু.
আরও তথ্য: http://en.wikedia.org/wiki/Regular_expression#Character_class http://ruby-doc.org/core-2.0/Regexp.html
[^[:alpha]]।