MATLAB-এ Regular Expressions এবং Pattern Matching
Regular Expressions (RegEx) বা Pattern Matching হল একটি শক্তিশালী টুল যা বিশেষ অক্ষরগুলোর সাহায্যে টেক্সট ডেটাতে নিদির্ষ্ট প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়। MATLAB-এ RegEx টেক্সট ডেটা প্রসেসিং এবং ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়, যেমন প্যাটার্ন খোঁজা, সন্নিবেশ করা, প্রতিস্থাপন করা, অথবা টেক্সট বিশ্লেষণ করা।
MATLAB এ regular expressions এবং pattern matching এর জন্য প্রধানত regexp, regexpi, regexprep ফাংশনগুলি ব্যবহৃত হয়।
১. Regular Expressions (RegEx) কী?
Regular Expressions (RegEx) হল একটি শক্তিশালী টুল যা আপনাকে টেক্সট স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্নের অনুসন্ধান, প্রতিস্থাপন এবং ম্যানিপুলেশন করতে সাহায্য করে। RegEx-এ নির্দিষ্ট বিশেষ চিহ্ন ব্যবহার করে প্যাটার্ন তৈরি করা হয়, যা আপনি একটি স্ট্রিং বা টেক্সট ডেটাতে খুঁজে পেতে পারেন।
২. MATLAB-এ RegEx ব্যবহার করা
MATLAB এ Regular Expressions ব্যবহার করতে কিছু মূল ফাংশন রয়েছে:
regexp: টেক্সটে একটি প্যাটার্ন খোঁজে এবং ফলাফল ফেরত দেয়।regexpi:regexpএর মতোই, কিন্তু এটি কেস-ইনসেনসিটিভ (case-insensitive)।regexprep: টেক্সটের মধ্যে একটি নির্দিষ্ট প্যাটার্নের সঙ্গে মিল খুঁজে সেটি প্রতিস্থাপন করতে ব্যবহৃত হয়।
সিনট্যাক্স:
regexp:result = regexp(text, pattern);এখানে
textহলো ইনপুট স্ট্রিং, এবংpatternহলো খোঁজার জন্য প্যাটার্ন।regexprep:result = regexprep(text, pattern, replacement);যেখানে
textহলো ইনপুট স্ট্রিং,patternহলো যে প্যাটার্নটি খুঁজে প্রতিস্থাপন করতে হবে, এবংreplacementহলো প্রতিস্থাপন স্ট্রিং।
৩. regexp ফাংশন ব্যবহার করা
regexp ফাংশনটি একটি টেক্সট স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট প্যাটার্ন খুঁজে এবং সেই প্যাটার্নের অবস্থান (অথবা অবস্থানগুলি) বের করে।
উদাহরণ:
str = 'The quick brown fox jumps over the lazy dog';
pattern = 'fox'; % 'fox' শব্দটি খুঁজে
result = regexp(str, pattern);
disp(result); % আউটপুট: 17 (অর্থাৎ 'fox' এর প্রথম অক্ষর স্ট্রিংয়ের 17 তম পজিশনে)এখানে regexp ফাংশনটি স্ট্রিংয়ের মধ্যে fox শব্দটি খুঁজে তার অবস্থান রিটার্ন করেছে।
উদাহরণ ২: সব শব্দ খুঁজে বের করা
str = 'The quick brown fox jumps over the lazy dog';
pattern = '\w+'; % \w+ - একটি বা একাধিক অক্ষর বা ডিজিট
result = regexp(str, pattern, 'match');
disp(result);আউটপুট:
'The' 'quick' 'brown' 'fox' 'jumps' 'over' 'the' 'lazy' 'dog'এখানে, \w+ ব্যবহার করে আমরা সব শব্দগুলো খুঁজে বের করেছি, যেখানে \w হলো অক্ষর বা ডিজিট এবং + মানে এক বা একাধিক।
৪. regexpi ফাংশন ব্যবহার করা
regexpi ফাংশনটি regexp এর মতো কাজ করে, তবে এটি কেস-ইনসেনসিটিভ (case-insensitive)। অর্থাৎ, এটি বড় এবং ছোট হাতের অক্ষরকেও একইভাবে বিবেচনা করবে।
উদাহরণ:
str = 'The quick brown fox jumps over the lazy dog';
pattern = 'FOX'; % 'FOX' শব্দটি কেস-ইনসেনসিটিভভাবে খুঁজে
result = regexpi(str, pattern);
disp(result); % আউটপুট: 17এখানে, regexpi ফাংশনটি FOX শব্দটিকে কেসের দিকে তাকিয়ে না খুঁজে, fox শব্দের অবস্থান রিটার্ন করেছে।
৫. regexprep ফাংশন ব্যবহার করা
regexprep ফাংশনটি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে সেটি প্রতিস্থাপন করার জন্য ব্যবহৃত হয়।
উদাহরণ:
str = 'The quick brown fox';
pattern = 'fox'; % 'fox' শব্দটি খুঁজে
replacement = 'cat'; % 'fox' কে 'cat' দিয়ে প্রতিস্থাপন
newStr = regexprep(str, pattern, replacement);
disp(newStr); % আউটপুট: 'The quick brown cat'এখানে, regexprep ফাংশনটি fox শব্দটিকে cat দিয়ে প্রতিস্থাপন করেছে।
উদাহরণ ২: সমস্ত সাদা স্থান (space) সরানো
str = 'This is an example text.';
pattern = '\s+'; % \s+ - এক বা একাধিক সাদা স্থান
replacement = ''; % সাদা স্থান বাদ দিতে হবে
newStr = regexprep(str, pattern, replacement);
disp(newStr); % আউটপুট: 'Thisisanexampletext.'এখানে, আমরা \s+ ব্যবহার করে সমস্ত সাদা স্থান (spaces) সরিয়ে ফেলেছি।
৬. Pattern Matching Examples (প্যাটার্ন ম্যাচিং উদাহরণ)
উদাহরণ ১: একটি ইমেইল অ্যাড্রেস যাচাই করা
str = 'user@example.com';
pattern = '^[\w._%+-]+@[\w.-]+\.[a-zA-Z]{2,}$'; % ইমেইল প্যাটার্ন
isMatch = ~isempty(regexp(str, pattern, 'once')); % একবারে ম্যাচ পরীক্ষা
disp(isMatch); % আউটপুট: 1 (ম্যাচ হয়েছে)এখানে, regexp ফাংশনটি ইমেইল প্যাটার্নটির সাথে স্ট্রিংটি ম্যাচ করে, এবং যদি ম্যাচ হয় তবে isMatch ১ রিটার্ন করবে।
উদাহরণ ২: ফোন নম্বর খোঁজা
str = 'Call me at 123-456-7890 or 987-654-3210.';
pattern = '\d{3}-\d{3}-\d{4}'; % ফোন নম্বর প্যাটার্ন
result = regexp(str, pattern, 'match');
disp(result); % আউটপুট: '123-456-7890' '987-654-3210'এখানে, \d{3}-\d{3}-\d{4} প্যাটার্নটি ৩ সংখ্যার পর হাইফেন এবং তারপর ৪ সংখ্যার ফোন নম্বর ম্যাচ করে।
সারসংক্ষেপ
regexp: এটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়।regexpi: এটিregexpএর মতো কাজ করে, কিন্তু এটি কেস-ইনসেনসিটিভ (case-insensitive)।regexprep: এটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে সেটি প্রতিস্থাপন করার জন্য ব্যবহৃত হয়।
Regular Expressions এবং Pattern Matching হল টেক্সট ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের জন্য অত্যন্ত শক্তিশালী টুল। MATLAB এর মাধ্যমে আপনি খুব সহজেই ডেটাতে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে এবং সেটি প্রক্রিয়া করতে পারেন।
Read more