Java Regular Expressions (Regex) একটি শক্তিশালী টুল যা স্ট্রিং ডেটা থেকে নির্দিষ্ট প্যাটার্ন ম্যাচ করার জন্য ব্যবহৃত হয়। Regex ব্যবহার করে আপনি স্ট্রিং এর মধ্যে নির্দিষ্ট প্যাটার্ন অনুসন্ধান করতে, সেটি প্রতিস্থাপন করতে, এবং মান যাচাই করতে পারেন।
Java তে Regex ব্যবহারের জন্য java.util.regex প্যাকেজটি ব্যবহৃত হয়। এই প্যাকেজে মূলত তিনটি ক্লাস ব্যবহৃত হয়:
- Pattern: এটি Regex প্যাটার্ন সংরক্ষণ এবং কন্সট্রাক্ট করার জন্য ব্যবহৃত হয়।
- Matcher: এটি Regex প্যাটার্নের সাথে স্ট্রিং মিলিয়ে দেখতে ব্যবহৃত হয়।
- PatternSyntaxException: এটি Regex এর সিনট্যাক্স ত্রুটি চিহ্নিত করতে ব্যবহৃত হয়।
Java Regex Pattern তৈরি করা
Java তে Regex Pattern তৈরি করার জন্য Pattern.compile() মেথড ব্যবহার করা হয়। এখানে Regex প্যাটার্ন একটি স্ট্রিং আকারে দেওয়া হয় এবং এটি একটি Pattern অবজেক্টে রূপান্তরিত হয়।
সাধারণ Regex Pattern তৈরি করার উদাহরণ
- ধরা যাক, আমাদের একটি প্যাটার্ন তৈরি করতে হবে যা একটি সঠিক ইমেইল ঠিকানা চেক করবে।
Regex Pattern:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Explanation:
^: প্যাটার্নের শুরু।[a-zA-Z0-9._%+-]+: ইমেইল এর প্রথম অংশ (যেখানে এক বা একাধিক অক্ষর থাকতে পারে, যা ছোট বা বড় হাতের অক্ষর, সংখ্যা, ডট, আন্ডারস্কোর, পার্সেন্টেজ, প্লাস, বা হাইফেন হতে পারে)।@: "@" চিহ্ন।[a-zA-Z0-9.-]+: ডোমেইন নাম (যেখানে ছোট বা বড় হাতের অক্ষর, সংখ্যা, ডট বা হাইফেন থাকতে পারে)।\.: ডট (ইমেইল সঠিকভাবে চেক করার জন্য ডট ব্যবহার করা হয়েছে)।[a-zA-Z]{2,}: ডোমেইন এক্সটেনশন (যেমন.com,.orgইত্যাদি)।$: প্যাটার্নের শেষ।
Java কোড উদাহরণ:
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String email = "example@email.com";
// ইমেইল প্যাটার্ন তৈরি
String emailPattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
// প্যাটার্ন কম্পাইল করা
Pattern pattern = Pattern.compile(emailPattern);
// Matcher ব্যবহার করে ইমেইল স্ট্রিং চেক করা
Matcher matcher = pattern.matcher(email);
// ইমেইল প্যাটার্ন মিললে True, না হলে False
if (matcher.matches()) {
System.out.println("Valid email address.");
} else {
System.out.println("Invalid email address.");
}
}
}
আউটপুট:
Valid email address.
2. সিম্পল ফোন নাম্বার চেকিং Regex
Regex Pattern:
^\d{10}$
Explanation:
^: প্যাটার্নের শুরু।\d{10}: ১০টি ডিজিটের একটি সিরিজ।$: প্যাটার্নের শেষ।
এটি ১০ ডিজিটের একটি ফোন নম্বর যাচাই করবে (যেমন 1234567890)।
Java কোড উদাহরণ:
import java.util.regex.*;
public class PhoneNumberValidation {
public static void main(String[] args) {
String phoneNumber = "1234567890";
// ফোন নম্বর প্যাটার্ন তৈরি
String phonePattern = "^\\d{10}$";
// প্যাটার্ন কম্পাইল করা
Pattern pattern = Pattern.compile(phonePattern);
// Matcher ব্যবহার করে ফোন নম্বর চেক করা
Matcher matcher = pattern.matcher(phoneNumber);
// ফোন নম্বর প্যাটার্ন মিললে True, না হলে False
if (matcher.matches()) {
System.out.println("Valid phone number.");
} else {
System.out.println("Invalid phone number.");
}
}
}
আউটপুট:
Valid phone number.
3. শুধুমাত্র ছোট হাতের অক্ষর চেক করা (Lowercase letters only)
Regex Pattern:
^[a-z]+$
Explanation:
^: প্যাটার্নের শুরু।[a-z]+: একটি বা একাধিক ছোট হাতের অক্ষর।$: প্যাটার্নের শেষ।
এটি শুধুমাত্র ছোট হাতের অক্ষর ধারণকারী স্ট্রিং চেক করবে।
Java কোড উদাহরণ:
import java.util.regex.*;
public class LowercaseValidation {
public static void main(String[] args) {
String input = "hello";
// ছোট হাতের অক্ষর প্যাটার্ন তৈরি
String lowercasePattern = "^[a-z]+$";
// প্যাটার্ন কম্পাইল করা
Pattern pattern = Pattern.compile(lowercasePattern);
// Matcher ব্যবহার করে চেক করা
Matcher matcher = pattern.matcher(input);
// প্যাটার্ন মিললে True, না হলে False
if (matcher.matches()) {
System.out.println("Valid input: only lowercase letters.");
} else {
System.out.println("Invalid input: contains non-lowercase letters.");
}
}
}
আউটপুট:
Valid input: only lowercase letters.
4. ডিজিট এবং দশমিক সংখ্যা চেক করা (Decimal Number Validation)
Regex Pattern:
^\d+(\.\d+)?$
Explanation:
^: প্যাটার্নের শুরু।\d+: একটি বা একাধিক ডিজিট।(\.\d+)?: দশমিকের পরে একটি বা একাধিক ডিজিট থাকতে পারে, তবে এটি ঐচ্ছিক।$: প্যাটার্নের শেষ।
এটি সঠিকভাবে ডিজিট এবং দশমিক সংখ্যাগুলি যাচাই করবে (যেমন 123, 123.45 ইত্যাদি)।
Java কোড উদাহরণ:
import java.util.regex.*;
public class DecimalNumberValidation {
public static void main(String[] args) {
String input = "123.45";
// দশমিক সংখ্যা প্যাটার্ন তৈরি
String decimalPattern = "^\\d+(\\.\\d+)?$";
// প্যাটার্ন কম্পাইল করা
Pattern pattern = Pattern.compile(decimalPattern);
// Matcher ব্যবহার করে চেক করা
Matcher matcher = pattern.matcher(input);
// প্যাটার্ন মিললে True, না হলে False
if (matcher.matches()) {
System.out.println("Valid decimal number.");
} else {
System.out.println("Invalid decimal number.");
}
}
}
আউটপুট:
Valid decimal number.
Java Regex ব্যবহার করে আপনি সহজেই স্ট্রিং প্যাটার্ন তৈরি করতে এবং সেই প্যাটার্নের সাথে স্ট্রিং মিলিয়ে দেখতে পারেন। স্ট্রিংয়ে নির্দিষ্ট প্যাটার্ন যাচাই, স্ট্রিংয়ের অংশ বের করা, বা স্ট্রিং পরিবর্তন করতে Regex খুবই কার্যকর এবং শক্তিশালী টুল।
- Pattern.compile(): Regex স্ট্রিং থেকে একটি
Patternঅবজেক্ট তৈরি করে। - Matcher:
Patternএর মাধ্যমে ইনপুট স্ট্রিং ম্যাচ করায়।
Read more