Regular Expressions (Regex) এবং Pattern Matching হল গাণিতিক এবং প্রোগ্রামিং কৌশল যা টেক্সট ডেটা বা স্ট্রিং এর মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়। এটি বিশেষ করে ডেটা বিশ্লেষণ, টেক্সট প্রসেসিং, ডেটা ভ্যালিডেশন এবং অন্যান্য বিভিন্ন কাজের জন্য গুরুত্বপূর্ণ। ম্যাটল্যাবসহ অনেক প্রোগ্রামিং ভাষা ও টুলস-এ এই কৌশল ব্যবহৃত হয়।
Regular Expressions (Regex)
Regular Expressions (সংক্ষেপে Regex) হল একটি টুল যা স্ট্রিং এর মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়। এটি একটি বিশেষ সিনট্যাক্স বা ভাষা যা স্ট্রিং ম্যানিপুলেশন এবং ম্যাচিং কাজগুলো সহজে করতে সাহায্য করে।
Regex ব্যবহার করে আপনি বিভিন্ন ধরনের প্যাটার্ন তৈরি করতে পারেন যেমন:
- সংখ্যার একাধিক ডিজিট।
- নির্দিষ্ট অক্ষরের ধারা।
- একটি নির্দিষ্ট শর্তে একটি শব্দ বা বাক্য খুঁজে বের করা।
কিছু সাধারণ Regex প্যাটার্ন:
.: যেকোনো একটি চরিত্র (নতুন লাইন ছাড়া)\d: যেকোনো ডিজিট (0-9)\w: যেকোনো অক্ষর, সংখ্যা বা আন্ডারস্কোর\s: সাদা স্থান (space, tab, newline)*: পূর্ববর্তী উপাদান শূন্য বা তার বেশি বার পুনরাবৃত্তি হতে পারে+: পূর্ববর্তী উপাদান এক বা একাধিক বার পুনরাবৃত্তি হতে পারে^: স্ট্রিংয়ের শুরুর দিকে প্যাটার্ন ম্যাচ করবে$: স্ট্রিংয়ের শেষে প্যাটার্ন ম্যাচ করবে[]: একটি চিহ্নিত চরিত্রের সেটের মধ্যে ম্যাচ করবে (যেমন[a-z],\d)
উদাহরণ:
ধরা যাক, আপনি একটি টেলিফোন নম্বর চেক করতে চান যেটি 10 ডিজিটের। এজন্য আপনি নিচের মতো একটি regex ব্যবহার করতে পারেন:
^\d{10}$এটি শুধু 10 ডিজিটের নম্বর ম্যাচ করবে।
Pattern Matching
Pattern Matching হল একটি প্রক্রিয়া যার মাধ্যমে নির্দিষ্ট প্যাটার্ন বা নিয়ম অনুসারে টেক্সট ডেটার সাথে মিলানো হয়। এটি মূলত regular expressions এর সাথে সম্পর্কিত, তবে সাধারণত এটি আরেকটি বৃহত্তর কৌশল হিসেবে ব্যবহৃত হয় যা শুধুমাত্র স্ট্রিং ম্যানিপুলেশন ছাড়াও অন্যান্য ডেটা খুঁজে বের করতে ব্যবহৃত হয়।
Pattern matching মূলত দুটি গুরুত্বপূর্ণ কাজের জন্য ব্যবহৃত হয়:
- Search: প্যাটার্ন অনুসারে ডেটার মধ্যে নির্দিষ্ট উপাদান খোঁজা।
- Replace: প্যাটার্ন অনুসারে ডেটার মধ্যে কিছু অংশ প্রতিস্থাপন করা।
উদাহরণ:
ধরা যাক, একটি টেক্সটে একটি নির্দিষ্ট শব্দ বা ফ্রেজ খুঁজে বের করতে চান:
text = 'Hello, my name is Azizur and I live in Dhaka.';
pattern = 'Azizur';
matches = regexp(text, pattern, 'match');
disp(matches); % এটি 'Azizur' প্রদর্শন করবেএখানে, regexp ফাংশনটি "Azizur" শব্দটি খুঁজে বের করার জন্য ব্যবহার করা হয়েছে।
ম্যাটল্যাব-এ Regular Expressions এর ব্যবহার
ম্যাটল্যাবের মধ্যে regexp, regexpi, regexprep ইত্যাদি ফাংশনগুলো regex এবং pattern matching এর কাজ করে থাকে।
১. regexp ফাংশন
regexp ফাংশনটি টেক্সটের মধ্যে একটি নির্দিষ্ট প্যাটার্ন অনুসন্ধান করে। এটি কেস-সেন্সিটিভ (case-sensitive) এবং এর মাধ্যমে আপনি প্যাটার্ন খুঁজে বের করার সাথে সাথে ম্যাচ করা টেক্সট বা অবস্থানও পেতে পারেন।
উদাহরণ:
text = 'The price is 100 dollars and 200 pounds';
pattern = '\d+'; % যেকোনো সংখ্যার এক বা একাধিক ডিজিট
matches = regexp(text, pattern, 'match');
disp(matches); % ['100', '200']২. regexpi ফাংশন
regexpi ফাংশনটি regexp এর মতো, তবে এটি কেস-ইনসেন্সিটিভ (case-insensitive) থাকে, অর্থাৎ এটি বড় হাতের অক্ষর বা ছোট হাতের অক্ষর যেকোনো রূপে প্যাটার্ন ম্যাচ করবে।
উদাহরণ:
text = 'Hello, Hello World!';
pattern = 'hello';
matches = regexpi(text, pattern, 'match');
disp(matches); % {'Hello', 'Hello'}৩. regexprep ফাংশন
regexprep ফাংশনটি টেক্সটের মধ্যে প্যাটার্ন অনুসারে প্রতিস্থাপন করতে ব্যবহৃত হয়।
উদাহরণ:
text = 'The price is 100 dollars and 200 pounds';
pattern = '\d+'; % সংখ্যার প্যাটার্ন
replacement = 'XXX'; % প্রতিস্থাপন হবে
newText = regexprep(text, pattern, replacement);
disp(newText); % 'The price is XXX dollars and XXX pounds'Regular Expressions এবং Pattern Matching এর ব্যবহারিক ক্ষেত্র
- ডেটা ভ্যালিডেশন:
- ইনপুট ডেটা যেমন ইমেইল, ফোন নম্বর, পাসওয়ার্ডের গঠন সঠিক কিনা যাচাই করা।
- টেক্সট ম্যানিপুলেশন:
- টেক্সট ফাইল বা ডেটাবেস থেকে নির্দিষ্ট তথ্য খুঁজে বের করা এবং প্রক্রিয়া করা।
- ডেটা এক্সট্র্যাকশন:
- ওয়েব স্ক্র্যাপিং বা লগ ফাইল বিশ্লেষণ করে নির্দিষ্ট ডেটা বের করা।
- টেক্সট রি-প্লেসমেন্ট:
- কোনও টেক্সটে নির্দিষ্ট শব্দ বা প্যাটার্ন প্রতিস্থাপন করা (যেমন, পুরানো ফোন নম্বর নতুন নম্বর দিয়ে প্রতিস্থাপন করা)।
সারাংশ
- Regular Expressions (Regex) হল স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন ম্যাচিংয়ের একটি শক্তিশালী টুল যা ডেটা খুঁজে বের করার জন্য ব্যবহৃত হয়।
- Pattern Matching হল একটি কৌশল যা টেক্সট বা ডেটাতে নির্দিষ্ট প্যাটার্নের খোঁজ করে এবং প্রয়োজনে সেগুলি প্রতিস্থাপন করতে সাহায্য করে।
- ম্যাটল্যাব-এ
regexp,regexpi, এবংregexprepফাংশনগুলো এর কার্যক্ষমতা প্রদান করে।
Read more