Pattern এবং Matcher ক্লাস জাভাতে Regular Expressions (RegEx) ব্যবহার করে টেক্সটের মধ্যে মেচিং বা প্যাটার্ন খোঁজার জন্য ব্যবহৃত হয়। এখানে, আমরা কিভাবে একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট প্যাটার্ন খুঁজে বের করা যায় এবং মেচিং চেক করা যায় তা দেখাবো।
উদাহরণ ১: একটি নির্দিষ্ট প্যাটার্ন খোঁজা এবং ম্যাচিং করা
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
// প্যাটার্ন তৈরি
String regex = "java";
String input = "I am learning java programming in java.";
// Pattern এবং Matcher তৈরি করা
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Matcher ব্যবহার করে প্যাটার্ন খোঁজা
while (matcher.find()) {
System.out.println("Found the pattern at index: " + matcher.start());
}
}
}
ব্যাখ্যা:
- Pattern.compile(regex): এখানে
regexহল যেটি খুঁজতে চাই। এই উদাহরণে আমরা "java" প্যাটার্ন খুঁজছি। - matcher.find(): এটি স্ট্রিংয়ের মধ্যে প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়। যদি প্যাটার্ন পাওয়া যায়, এটি সত্য (true) ফেরত দেয় এবং ম্যাচের অবস্থানকে
matcher.start()দিয়ে দেখা যায়। - matcher.start(): এটি বর্তমান মেচিং প্যাটার্নের প্রথম অক্ষরের ইনডেক্স দেয়।
আউটপুট:
Found the pattern at index: 17
Found the pattern at index: 42
এটি স্ট্রিংয়ের মধ্যে "java" প্যাটার্ন দুটি স্থানে খুঁজে পেয়েছে: একটিতে ইনডেক্স ১৭ এবং অন্যটি ৪২ তে।
উদাহরণ ২: প্যাটার্ন মেচিং চেক করা (Matches এবং LookingAt)
Matcher.matches() এবং Matcher.lookingAt() ব্যবহার করা যেতে পারে পুরো স্ট্রিং বা অংশের জন্য প্যাটার্ন মেচিং চেক করতে।
১. Matcher.matches() — পুরো স্ট্রিংয়ের সাথে প্যাটার্ন মেলে কিনা চেক করে
import java.util.regex.*;
public class MatchExample {
public static void main(String[] args) {
String regex = "java";
String input = "java";
// Pattern এবং Matcher তৈরি করা
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Matcher.matches() ব্যবহার করে প্যাটার্ন পুরো স্ট্রিংয়ের সাথে মেলে কিনা চেক করা
if (matcher.matches()) {
System.out.println("The input matches the pattern.");
} else {
System.out.println("The input does not match the pattern.");
}
}
}
ব্যাখ্যা:
- matcher.matches(): এটি পুরো স্ট্রিংয়ের সাথে প্যাটার্ন মেলানোর চেষ্টা করে। যদি পুরো স্ট্রিংটি প্যাটার্নের সাথে মিলে যায়, তাহলে এটি সত্য (true) ফেরত দেয়।
আউটপুট:
The input matches the pattern.
২. Matcher.lookingAt() — স্ট্রিংয়ের শুরুতে প্যাটার্ন মেলে কিনা চেক করে
import java.util.regex.*;
public class LookingAtExample {
public static void main(String[] args) {
String regex = "java";
String input = "java programming";
// Pattern এবং Matcher তৈরি করা
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Matcher.lookingAt() ব্যবহার করে স্ট্রিংয়ের শুরুতে প্যাটার্ন মেলে কিনা চেক করা
if (matcher.lookingAt()) {
System.out.println("The pattern matches the beginning of the input.");
} else {
System.out.println("The pattern does not match the beginning of the input.");
}
}
}
ব্যাখ্যা:
- matcher.lookingAt(): এটি স্ট্রিংয়ের প্রথম অংশে প্যাটার্ন মেলে কিনা তা পরীক্ষা করে। পুরো স্ট্রিং না মিললেও, যদি শুরুতে মেলে তবে এটি সত্য (true) ফেরত দেয়।
আউটপুট:
The pattern matches the beginning of the input.
উদাহরণ ৩: Replacing Text with RegEx
RegEx এর মাধ্যমে টেক্সট পরিবর্তন (replace) করা।
import java.util.regex.*;
public class ReplaceExample {
public static void main(String[] args) {
String regex = "\\d"; // সমস্ত ডিজিট খুঁজে বের করা
String input = "I have 2 apples and 5 oranges.";
// Pattern এবং Matcher তৈরি করা
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// সমস্ত ডিজিট পরিবর্তন করা "X" দিয়ে
String result = matcher.replaceAll("X");
System.out.println("Original Text: " + input);
System.out.println("Modified Text: " + result);
}
}
ব্যাখ্যা:
- matcher.replaceAll("X"): এটি সমস্ত প্যাটার্নের ম্যাচগুলিকে নির্দিষ্ট টেক্সট দিয়ে প্রতিস্থাপন করে। এখানে আমরা সমস্ত ডিজিটকে "X" দিয়ে পরিবর্তন করেছি।
আউটপুট:
Original Text: I have 2 apples and 5 oranges.
Modified Text: I have X apples and X oranges.
উদাহরণ ৪: Email Validation Using RegEx
ইমেইল ঠিকানা যাচাই করার জন্য একটি RegEx ব্যবহার করা।
import java.util.regex.*;
public class EmailValidationExample {
public static void main(String[] args) {
String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
String email = "example@domain.com";
// Pattern এবং Matcher তৈরি করা
Pattern pattern = Pattern.compile(emailRegex);
Matcher matcher = pattern.matcher(email);
// ইমেইল ঠিকানা যাচাই করা
if (matcher.matches()) {
System.out.println("Valid Email Address");
} else {
System.out.println("Invalid Email Address");
}
}
}
ব্যাখ্যা:
- RegEx: এখানে একটি ইমেইল ঠিকানার প্যাটার্ন ব্যবহার করা হয়েছে যা সাধারণত বৈধ ইমেইল ঠিকানা যাচাই করতে ব্যবহৃত হয়।
- matcher.matches(): এটি সম্পূর্ণ স্ট্রিংকে যাচাই করে এবং সঠিক ইমেইল ঠিকানা হলে সত্য (true) ফেরত দেয়।
আউটপুট:
Valid Email Address
সারাংশ:
- Pattern এবং Matcher ব্যবহার করে আপনি জাভায় শক্তিশালী টেক্সট খোঁজার এবং ম্যাচিং করার ক্ষমতা পান।
- Pattern.compile() প্যাটার্ন তৈরি করতে এবং Matcher.matcher() স্ট্রিংয়ের সাথে প্যাটার্নের মিল পরীক্ষা করতে ব্যবহৃত হয়।
- RegEx-এর মাধ্যমে আপনি সহজে টেক্সট পরিবর্তন, প্যাটার্ন খোঁজা, ইমেইল বা ফোন নম্বর যাচাই করা ইত্যাদি কার্যক্রম করতে পারবেন।
Content added By
Read more