Java Regular Expressions (Regex) হল একটি শক্তিশালী টুল যা টেক্সট বা স্ট্রিংয়ের মধ্যে প্যাটার্ন মাচিং এবং ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়। Java-তে Regex ব্যবহারের জন্য java.util.regex প্যাকেজটি প্রদান করা হয়েছে। এই প্যাকেজটি Java-তে স্ট্রিং প্যাটার্ন মাচিং এবং টেক্সট বিশ্লেষণ করতে ব্যবহৃত হয়, যা বিভিন্ন ধরনের টেক্সট প্রক্রিয়া যেমন ফাইল নাম চেক করা, ডেটা ভ্যালিডেশন, এবং স্ট্রিং প্রসেসিং এ সাহায্য করে।
java.util.regex প্যাকেজের মূল ক্লাসগুলো:
- Pattern:
Patternক্লাসটি একটি কম্পাইল করা রেগুলার এক্সপ্রেশনকে রিপ্রেজেন্ট করে।- এটি একটি স্ট্যাটিক মেথড
compile()প্রদান করে, যার মাধ্যমে আপনি একটি রেগুলার এক্সপ্রেশন কম্পাইল করতে পারেন।
- Matcher:
Matcherক্লাসটি একটিPatternএর সাথে স্ট্রিংয়ের মেচিং প্রক্রিয়া পরিচালনা করে। এটিPatternক্লাসেরmatcher()মেথডের মাধ্যমে পাওয়া যায়।Matcherক্লাসের মেথডগুলো যেমনfind(),matches(),replaceAll(), ইত্যাদি স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন মাচিংয়ের জন্য ব্যবহৃত হয়।
- PatternSyntaxException:
- এই ক্লাসটি ব্যবহার করা হয় যখন একটি রেগুলার এক্সপ্রেশন সিনট্যাক্স ভুল থাকে এবং আপনি একটি
PatternSyntaxExceptionএক্সেপশন পান।
- এই ক্লাসটি ব্যবহার করা হয় যখন একটি রেগুলার এক্সপ্রেশন সিনট্যাক্স ভুল থাকে এবং আপনি একটি
Pattern ক্লাস:
Pattern ক্লাসটি Java-তে একটি রেগুলার এক্সপ্রেশনকে রিপ্রেজেন্ট করে এবং এটি কম্পাইল করার মাধ্যমে Regex প্যাটার্ন তৈরি করে।
Pattern Class এর কিছু গুরুত্বপূর্ণ মেথড:
compile(String regex):- এটি একটি স্ট্রিং রেগুলার এক্সপ্রেশনকে একটি
Patternঅবজেক্টে কম্পাইল করে। উদাহরণ:
Pattern pattern = Pattern.compile("a*b");
- এটি একটি স্ট্রিং রেগুলার এক্সপ্রেশনকে একটি
compile(String regex, int flags):- এটি একটি রেগুলার এক্সপ্রেশন কম্পাইল করে এবং কিছু নির্দিষ্ট ফ্ল্যাগ সেট করতে পারে (যেমন
Pattern.CASE_INSENSITIVE,Pattern.MULTILINEইত্যাদি)।
- এটি একটি রেগুলার এক্সপ্রেশন কম্পাইল করে এবং কিছু নির্দিষ্ট ফ্ল্যাগ সেট করতে পারে (যেমন
matcher(CharSequence input):- এটি একটি স্ট্রিং ইনপুট নিয়ে একটি
Matcherঅবজেক্ট তৈরি করে, যা পরবর্তী মাচিং কার্যক্রম পরিচালনা করতে পারে।
- এটি একটি স্ট্রিং ইনপুট নিয়ে একটি
split(CharSequence input):- এটি একটি ইনপুট স্ট্রিংয়ের মধ্যে রেগুলার এক্সপ্রেশন প্যাটার্ন অনুসারে স্ট্রিংটিকে বিভক্ত করে।
Pattern Class উদাহরণ:
import java.util.regex.*;
public class PatternExample {
public static void main(String[] args) {
String regex = "a*b";
String input = "aaab";
// Compile the regular expression into a pattern
Pattern pattern = Pattern.compile(regex);
// Create a matcher object to match the input string
Matcher matcher = pattern.matcher(input);
// Check if the pattern matches
if (matcher.matches()) {
System.out.println("Pattern matches the input string");
} else {
System.out.println("Pattern does not match the input string");
}
}
}
আউটপুট:
Pattern matches the input string
Matcher ক্লাস:
Matcher ক্লাসটি একটি Pattern এর সাথে স্ট্রিংয়ে মাচিং বা অন্যান্য স্ট্রিং অপারেশন করতে ব্যবহৃত হয়।
Matcher Class এর কিছু গুরুত্বপূর্ণ মেথড:
matches():- পুরো স্ট্রিংটি প্যাটার্নের সাথে মেলে কিনা তা চেক করে।
find():- এটি স্ট্রিংয়ের মধ্যে প্যাটার্নটি খুঁজে বের করে। এটি একে একে স্ট্রিংয়ের বিভিন্ন অংশে প্যাটার্ন খুঁজে দেখতে সাহায্য করে।
replaceAll(String replacement):- এটি স্ট্রিংয়ের যে অংশ প্যাটার্নের সাথে মেলে, তা প্রতিস্থাপন করে একটি নতুন স্ট্রিং তৈরি করে।
group():- এটি মেচড প্যাটার্নের গ্রুপের মান রিটার্ন করে, যদি প্যাটার্ন গ্রুপ থাকে।
start():- এটি প্যাটার্নের প্রথম মেলা অংশের সূচনা ইনডেক্স রিটার্ন করে।
Matcher Class উদাহরণ:
import java.util.regex.*;
public class MatcherExample {
public static void main(String[] args) {
String regex = "ab";
String input = "abcab";
// Create a pattern and matcher
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Check if the pattern exists in the input string
while (matcher.find()) {
System.out.println("Found match: " + matcher.group() + " at index: " + matcher.start());
}
}
}
আউটপুট:
Found match: ab at index: 0
Found match: ab at index: 3
PatternSyntaxException ক্লাস:
PatternSyntaxException হল একটি এক্সেপশন যা Pattern.compile() বা অন্য কোনো প্যাটার্ন কম্পাইলিং অপারেশনে যদি কোনো সঠিক রেগুলার এক্সপ্রেশন সিনট্যাক্স না থাকে তবে ঘটে।
PatternSyntaxException উদাহরণ:
import java.util.regex.*;
public class PatternSyntaxExceptionExample {
public static void main(String[] args) {
try {
// Invalid regex that will throw a PatternSyntaxException
Pattern pattern = Pattern.compile("[a-z");
} catch (PatternSyntaxException e) {
System.out.println("Invalid regex pattern: " + e.getDescription());
}
}
}
আউটপুট:
Invalid regex pattern: Unclosed character class near index 4
[a-z
^
java.util.regex প্যাকেজের প্রধান উপকারিতা:
- স্ট্রিং মাচিং:
- Java Regex দিয়ে আপনি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন মেলানো, খোঁজা এবং বিভিন্ন কার্যকলাপ করতে পারেন।
- স্ট্রিং রিপ্লেসমেন্ট:
- আপনি স্ট্রিংয়ের কোনো অংশকে রিপ্লেস করতে পারেন, যেমন কোনো নির্দিষ্ট শব্দ বা প্যাটার্ন প্রতিস্থাপন করা।
- স্ট্রিং সেগমেন্টেশন (Splitting):
- রেগুলার এক্সপ্রেশন দিয়ে আপনি স্ট্রিং বিভক্ত করতে পারেন, যেমন কমা বা সেমিকোলন দ্বারা স্ট্রিং ভাগ করা।
- ডেটা ভ্যালিডেশন:
- রেগুলার এক্সপ্রেশন দিয়ে আপনি ডেটা ভ্যালিডেশন করতে পারেন, যেমন ইমেইল অ্যাড্রেস, ফোন নম্বর বা অন্য কোনো প্যাটার্ন যাচাই করা।
java.util.regex প্যাকেজটি Java-তে রেগুলার এক্সপ্রেশন ম্যানিপুলেশন এবং স্ট্রিং মাচিংয়ের জন্য একটি শক্তিশালী এবং দরকারী টুল। এটি স্ট্রিং প্যাটার্ন মাচিং, ডেটা ভ্যালিডেশন, স্ট্রিং পরিবর্তন এবং বিভক্তি ইত্যাদি কাজের জন্য ব্যবহৃত হয়। Pattern এবং Matcher ক্লাসের সাহায্যে আপনি সহজেই রেগুলার এক্সপ্রেশন ব্যবহার করে টেক্সট অপারেশন করতে পারবেন।