Regular Expression (Regex) একটি শক্তিশালী প্যাটার্ন-ম্যাচিং টুল, যা টেক্সটের মধ্যে প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট ধরনের স্ট্রিং প্যাটার্নের সাথে মেলে এমন টেক্সটের অংশগুলো শনাক্ত করার জন্য ব্যবহার করা হয়। Java তে, Regex ব্যবহৃত হয় বিভিন্ন টেক্সট প্রসেসিং কাজের জন্য, যেমন টেক্সট অনুসন্ধান, প্রতিস্থাপন, বিভাজন, অথবা যাচাই করা।
Java তে Regex ব্যবহারের জন্য java.util.regex প্যাকেজটি রয়েছে। এই প্যাকেজে দুটি মূল ক্লাস রয়েছে:
- Pattern: এটি একটি কম্পাইল করা regular expression প্যাটার্ন ধারণ করে।
- Matcher: এটি একটি
Patternক্লাসের প্যাটার্নের সাথে ইনপুট স্ট্রিং ম্যাচ করে।
Regex এর মূল উপাদানসমূহ
- Metacharacters:
.(dot): যেকোনো একটি ক্যারেক্টার মেলবে (নতুন লাইন ছাড়া)।- উদাহরণ:
a.b→ "acb", "axb", "a1b" ইত্যাদি।
- উদাহরণ:
^(caret): স্ট্রিংয়ের শুরুতে ম্যাচ করবে।- উদাহরণ:
^abc→ "abcdef", "abc123" (কেবল স্ট্রিং যেটি "abc" দিয়ে শুরু হয়)।
- উদাহরণ:
$(dollar): স্ট্রিংয়ের শেষে ম্যাচ করবে।- উদাহরণ:
abc$→ "123abc", "helloabc" (কেবল স্ট্রিং যেটি "abc" দিয়ে শেষ হয়)।
- উদাহরণ:
[](character class): একটি নির্দিষ্ট চরিত্রের মধ্যে যে কোনো একটি ম্যাচ করবে।- উদাহরণ:
[abc]→ "a", "b", "c"।
- উদাহরণ:
|(pipe): "OR" অপারেটর, দুটি প্যাটার্নের মধ্যে যেকোনো একটি মেলবে।- উদাহরণ:
a|b→ "a" অথবা "b"।
- উদাহরণ:
*(asterisk): আগের ক্যারেক্টারটি ০ বা ততোধিক বার পুনরাবৃত্তি হতে পারে।- উদাহরণ:
a*b→ "b", "ab", "aaab" ইত্যাদি।
- উদাহরণ:
+(plus): আগের ক্যারেক্টারটি ১ বা ততোধিক বার পুনরাবৃত্তি হতে হবে।- উদাহরণ:
a+b→ "ab", "aaab" (কিন্তু শুধুমাত্র "b" নয়)।
- উদাহরণ:
?(question mark): আগের ক্যারেক্টারটি ০ বা ১ বার পুনরাবৃত্তি হতে পারে।- উদাহরণ:
a?b→ "b", "ab"।
- উদাহরণ:
- Escape Sequences:
\d: ডিজিট (0-9) ম্যাচ করবে।\D: অ-ডিজিট (0-9 ছাড়া) ম্যাচ করবে।\w: একটি শব্দের অংশ (letter, digit, underscore) ম্যাচ করবে।\W: অ-শব্দ চরিত্র (letter, digit, underscore ছাড়া) ম্যাচ করবে।\s: সাদা জায়গা (space, tab, newline) ম্যাচ করবে।\S: সাদা জায়গা ছাড়া অন্য কিছু ম্যাচ করবে।\b: শব্দের সীমানা (word boundary)।\B: শব্দের সীমানা ছাড়া অন্য কিছু।
- Quantifiers:
{n}: ঠিকnবার পুনরাবৃত্তি।- উদাহরণ:
a{3}→ "aaa" (যেকোনো স্ট্রিং যাতে "aaa" আছে)।
- উদাহরণ:
{n,}: ন্যূনতমnবার পুনরাবৃত্তি।- উদাহরণ:
a{2,}→ "aa", "aaa", "aaaa" ইত্যাদি।
- উদাহরণ:
{n,m}: ন্যূনতমnবার এবং সর্বোচ্চmবার পুনরাবৃত্তি।- উদাহরণ:
a{2,4}→ "aa", "aaa", "aaaa"।
- উদাহরণ:
- Grouping:
- `() (parentheses): প্যাটার্ন গ্রুপ করতে ব্যবহার হয়।
- উদাহরণ:
(ab)+→ "ab", "abab", "ababab" ইত্যাদি।
- উদাহরণ:
(?:...): নন-ক্যাপচার গ্রুপ, যেটি গ্রুপিং করলেও ফলস্বরূপে ক্যাপচার হবে না।
- `() (parentheses): প্যাটার্ন গ্রুপ করতে ব্যবহার হয়।
Java Regex API: Usage Example
Java তে Regular Expressions ব্যবহার করার জন্য প্রধানত দুটি ক্লাস ব্যবহার করা হয়:
- Pattern – প্যাটার্ন তৈরি করা।
- Matcher – স্ট্রিংয়ের সাথে প্যাটার্নের ম্যাচ চেক করা।
Example: Pattern Matching Using Regex
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
// Regular expression for a valid email
String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
// Compile the regular expression
Pattern pattern = Pattern.compile(emailRegex);
// Input string to match
String email = "test@example.com";
// Create a matcher object
Matcher matcher = pattern.matcher(email);
// Check if the email matches the pattern
if (matcher.matches()) {
System.out.println("Valid email address.");
} else {
System.out.println("Invalid email address.");
}
}
}
ব্যাখ্যা:
- এখানে একটি ইমেইল প্যাটার্ন তৈরি করা হয়েছে যা ইমেইল ঠিকানার জন্য একটি বৈধ ফরম্যাট চেক করে।
Pattern.compile()মেথডের মাধ্যমে Regex কম্পাইল করা হয়েছে।matcher.matches()মেথডটি ইনপুট স্ট্রিংয়ের সাথে প্যাটার্নের মিল চেক করে।
Regex এর ব্যবহার:
- String Matching: Regex ব্যবহার করে নির্দিষ্ট স্ট্রিং বা প্যাটার্ন খুঁজে বের করা।
- Data Validation: ইমেইল, ফোন নম্বর, পিন কোড, পোস্টাল কোড ইত্যাদি যাচাই করার জন্য।
- String Searching: স্ট্রিংয়ের মধ্যে প্যাটার্ন খুঁজে বের করা।
- Text Manipulation: স্ট্রিংয়ের অংশ পরিবর্তন বা প্রতিস্থাপন করা।
Java তে Regex একটি শক্তিশালী এবং নমনীয় টুল যা স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে, স্ট্রিং যাচাই করতে এবং টেক্সট ম্যানিপুলেশন করতে ব্যবহৃত হয়। এটি টেক্সট প্রসেসিং এবং ডাটা ভ্যালিডেশন প্রক্রিয়াগুলিতে খুবই উপকারী। java.util.regex প্যাকেজের Pattern এবং Matcher ক্লাস ব্যবহার করে Java তে সহজেই Regex প্যাটার্নগুলো কার্যকরীভাবে প্রয়োগ করা যায়।
Read more