বিষয়বস্তুতে চলুন

রেগুলার এক্সপ্রেশন

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
(?<=\.) {2,}(?=[A-Z]) বিন্যাসের ফলাফল। বিন্যাসটি . চিহ্ন ও বড় হাতের অক্ষরের মাঝে দুই বা ততোধিক স্পেস খুঁজে বের করে।

রেগুলার এক্সপ্রেশন (সংক্ষিপ্তরূপ: regex বা regexp) হল এক সারি ক্যারেক্টার যা লেখার মাঝে নির্দিষ্ট বিন্যাস নির্দেশ করে। কম্পিউটারে সাধারণত এটি লেখার মাঝে বিন্যাস খুঁজতে ও ইনপুট যাচাইকরণে ব্যবহৃত হয়। তত্ত্বীয় কম্পিউটার বিজ্ঞানফরমাল ল্যাঙ্গুয়েজ থিওরিতে এই পদ্ধতিটি উন্নয়ন করা হয়।

এই ধারণাটির সূচনা ১৯৫০ এর দশকে, যখন গণিতবিদ স্টিফেন ক্লেনি রেগুলার ল্যাঙ্গুয়েজের বর্ণনা দেন। ধারণাটি সাধারণ ব্যবহারে চলে আসে ইউনিক্সের লেখা প্রক্রিয়াকরণ সরঞ্জামগুলোর মাধ্যমে। রেগুলার এক্সপ্রেশন লেখার ক্ষেত্রে POSIX standard, Perl syntax ইত্যাদি পদ্ধতি ব্যবহার হয়ে আসছে।

রেগুলার এক্সপ্রেশন সার্চ ইঞ্জিনে, টেক্সট ইডিটরের প্রতিস্থাপন সরঞ্জামে, sedAWK এর মত লেখা প্রক্রিয়াকরণ সরঞ্জামে ব্যবহৃত হয়। অনেক প্রোগ্রামিং ভাষাতে রেজেক্স ব্যবহারের সুবিধা যুক্ত করা থাকে, ভাষার সাথেই বা লাইব্রেরির মাধ্যমে।

বিন্যাস বর্ণনা করতে একটি সহজ উপায় হল এর উপাদানগুলোর তালিকা করা। তবে কিছু সংক্ষিপ্ত উপায় রয়েছে। যেমন তিনটি স্ট্রিং "Handel", "Händel" এবং "Haendel" কে H(ä|ae?)ndel এর মাধ্যমে বর্ণনা করা হয়। রেগুলার এক্সপ্রেশন তৈরিতে যে গঠনগুলো ব্যবহার হয় তার মধ্যে রয়েছে:

বুলিয়ান অর
| চিহ্ন বিকল্পগুলোকে আলাদা করে। যেমন gray|grey বিন্যাস "gray" এবং "grey" এর সাথে মিলবে।
গ্রুপিং
() ব্যবহার হয় পরিসর নির্দেশ করতে। যেমন gr(a|e)y বিন্যাসটি gray|grey এর মত কাজ করে।
কোয়ান্টিফিকেশন
?, *, + ইত্যাদি চিহ্ন দিয়ে একটি বর্ণ অথবা বিন্যাস পরপর কতবার থাকবে তা নির্দেশ করা যায়। ? বুঝায় শূণ্য অথবা একবার। তাই colou?r বিন্যাস "color" এবং "colour" এর সাথে মিলবে। * শূণ্য অথবা যেকোনো বার আর + এক বা একাধিক বার বুঝায়। ab*cab+c বিন্যাস দুটি "abc", "abbc", "abbbc" ইত্যাদি লেখার সাথে মিলবে। তবে "ac" লেখায় ab*c মিললেও ab+c মিলবে না। একইভাবে {n}, যেখানে n একটি সংখ্যা, n বার বুঝায়।
ওয়াইল্ডকার্ড
. চিহ্ন যেকোনো ক্যারেক্টারের সাথে মিলবে। উদাহরণ স্বরূপ a.b বিন্যাস প্রথমে a, তারপর যেকোনো একটি ক্যারেকটার, তারপর b থাকলে মিলবে। একইভাবে a.{4}b বিন্যাস a ও b এর মাঝে যেকোনো চারটি ক্যারেকটার থাকলে মিলবে।

তথ্যসূত্র

[সম্পাদনা]