java.util.regex.Matcher ক্লাসটি Java Regular Expressions (Regex) এর গুরুত্বপূর্ণ অংশ এবং এটি regex প্যাটার্নের সাথে স্ট্রিং এর মিল খোঁজার এবং প্রক্রিয়া করার জন্য ব্যবহৃত হয়। Matcher ক্লাসের মধ্যে কিছু গুরুত্বপূর্ণ মেথড রয়েছে যা স্ট্রিং-এ প্যাটার্ন ম্যাচিং এবং গ্রুপিং অপারেশনগুলি সহজ করে তোলে। এর মধ্যে অন্যতম মেথডগুলো হল matches(), find(), এবং group()।
চলুন, এই মেথডগুলির ব্যবহার এবং তাদের কার্যকারিতা বিস্তারিতভাবে দেখার চেষ্টা করি।
1. Matcher.matches()
- অর্থ:
matches()মেথডটি স্ট্রিংটির পুরো অংশের সাথে regex প্যাটার্নটি ম্যাচ করে কিনা তা পরীক্ষা করে। অর্থাৎ, এটি স্ট্রিংয়ের শুরু থেকে শেষ পর্যন্ত প্যাটার্নটি পরীক্ষা করবে। - ফলাফল: যদি স্ট্রিংটি প্যাটার্নের সাথে পুরোপুরি মেলে, তাহলে এটি
trueফেরত দেয়; অন্যথায়,falseফেরত দেয়।
ব্যবহার:
- এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনি নিশ্চিত হতে চান যে স্ট্রিংটি পুরোপুরি একটি নির্দিষ্ট প্যাটার্ন অনুসরণ করছে কি না।
উদাহরণ:
import java.util.regex.*;
public class MatcherMatchesExample {
public static void main(String[] args) {
// Regex pattern
String pattern = "hello";
// String to match
String text = "hello";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher
Matcher m = p.matcher(text);
// Check if the entire string matches the pattern
if (m.matches()) {
System.out.println("Pattern matched!");
} else {
System.out.println("Pattern not matched.");
}
}
}
আউটপুট:
Pattern matched!
ব্যাখ্যা:
- এখানে
matches()মেথডটি পরীক্ষা করেছে যে স্ট্রিং"hello"পুরোপুরি"hello"প্যাটার্নের সাথে মেলে কি না, এবং এটিtrueফেরত দেয়।
2. Matcher.find()
- অর্থ:
find()মেথডটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্নটি খুঁজে বের করে। এটি পুরো স্ট্রিংটিকে একে একে পরীক্ষা করে এবং যদি কোথাও প্যাটার্নটি মেলে, তবে এটিtrueফেরত দেয়। - ফলাফল:
find()শুধুমাত্র স্ট্রিংয়ের কোনো একটি অংশে প্যাটার্নটি খুঁজে পাওয়া গেলেইtrueফেরত দেয়, পুরো স্ট্রিং পরীক্ষা করার প্রয়োজন নেই।
ব্যবহার:
- এটি ব্যবহার করা হয় যখন আপনি চান একটি স্ট্রিংয়ের মধ্যে প্যাটার্নের কোনো একটি অংশ খুঁজে বের করতে।
উদাহরণ:
import java.util.regex.*;
public class MatcherFindExample {
public static void main(String[] args) {
// Regex pattern
String pattern = "world";
// String to search
String text = "hello world, welcome to Java";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher
Matcher m = p.matcher(text);
// Find the first occurrence of the pattern
if (m.find()) {
System.out.println("Pattern found: " + m.group());
} else {
System.out.println("Pattern not found.");
}
}
}
আউটপুট:
Pattern found: world
ব্যাখ্যা:
find()মেথডটি"world"প্যাটার্নটি"hello world, welcome to Java"স্ট্রিংয়ের মধ্যে খুঁজে পেয়েছে এবংtrueফেরত দেয়। এর পরেgroup()মেথডটি সঠিক অংশটি বের করে দেখায়।
3. Matcher.group()
- অর্থ:
group()মেথডটি যখন কোনো মেথড (যেমনfind()) প্যাটার্ন ম্যাচ করার পর কল করা হয়, তখন এটি সেই অংশটি (match) ফেরত দেয় যেটি প্যাটার্নের সাথে মিলে গেছে। আপনি এটি ব্যবহার করে capturing groups (প্যাটার্নের মধ্যে প্যারেন্টেসিসের ভিতরে) থেকে মেলে এমন অংশও বের করতে পারেন। - ফলাফল: যদি
find()বাmatches()সফলভাবে কোনো মিল খুঁজে পায়, তবেgroup()মেথডটি সেই মিল পাওয়া অংশটি ফেরত দেয়।
ব্যবহার:
- এটি ব্যবহার করা হয় যখন আপনি প্যাটার্নের কোনো নির্দিষ্ট অংশ বা গ্রুপ খুঁজে পেতে চান।
উদাহরণ:
import java.util.regex.*;
public class MatcherGroupExample {
public static void main(String[] args) {
// Regex pattern with a capturing group
String pattern = "(\\w+)\\s+(\\w+)"; // Match two words separated by space
// String to search
String text = "hello world";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher
Matcher m = p.matcher(text);
// Check if the pattern is found
if (m.find()) {
// Retrieve the matched groups
System.out.println("Group 1: " + m.group(1)); // First word
System.out.println("Group 2: " + m.group(2)); // Second word
} else {
System.out.println("Pattern not found.");
}
}
}
আউটপুট:
Group 1: hello
Group 2: world
ব্যাখ্যা:
- এখানে প্যাটার্ন
(\\w+)\\s+(\\w+)দুটি শব্দ খুঁজে পায়, যেখানে প্রথম গ্রুপটিhelloএবং দ্বিতীয় গ্রুপটিworld। group(1)এবংgroup(2)ব্যবহার করে দুটি গ্রুপের মান আলাদাভাবে বের করা হয়েছে।
সারাংশ:
Matcher.matches(): পুরো স্ট্রিংয়ের সাথে প্যাটার্নটি ম্যাচ করে কিনা তা পরীক্ষা করে।Matcher.find(): স্ট্রিংয়ের কোনো অংশের সাথে প্যাটার্নটি মিলছে কি না তা পরীক্ষা করে।Matcher.group(): প্যাটার্নের সঠিক অংশ বা গ্রুপ বের করে, যাfind()বাmatches()দ্বারা ম্যাচ করা হয়েছে।
এই তিনটি মেথডের সাহায্যে আপনি Java তে Regular Expressions ব্যবহার করে স্ট্রিং ম্যানিপুলেশন, টেক্সট ভ্যালিডেশন এবং প্যাটার্ন মেলানো সহজে করতে পারবেন।
Read more