Regular Expressions (Regex) বা RegEx হল একটি শক্তিশালী টুল যা পাঠ্য (text) বা স্ট্রিং ম্যানিপুলেশন এবং অনুসন্ধানের জন্য ব্যবহৃত হয়। এটি একটি প্যাটার্ন বা টেমপ্লেট হিসেবে কাজ করে যা টেক্সটের নির্দিষ্ট অংশ খুঁজে বের করার জন্য ব্যবহৃত হয়। Java তে Regex অনেক শক্তিশালী এবং বহুল ব্যবহৃত একটি ফিচার, যা স্ট্রিং matching, validation, parsing, এবং টেক্সট ম্যানিপুলেশন সহজ করে তোলে।
Regex এর ইতিহাস:
- প্রথম উত্পত্তি:
- Regular expressions এর জন্ম হয়েছিল 1950s এর দিকে, যখন Ken Thompson এবং তার সহকর্মীরা UNIX অপারেটিং সিস্টেমের জন্য টেক্সট ম্যানিপুলেশন টুল তৈরি করছিলেন। তাদের মূল উদ্দেশ্য ছিল টেক্সটের মধ্যে নির্দিষ্ট প্যাটার্নগুলো খুঁজে বের করা এবং সেগুলোর সাথে সম্পর্কিত অ্যাকশন গ্রহণ করা।
- এটি মূলত Thompson এবং তার সহকর্মী Brian Kernighan এর কাজের ফলস্বরূপ, যারা টেক্সট প্রসেসিং এবং ডাটা ম্যানিপুলেশন এর জন্য UNIX tools তৈরি করেছিলেন। এর মধ্যে grep, sed, এবং awk-এর মতো গুরুত্বপূর্ণ কমান্ডগুলোর জন্য regex-এর ব্যবহার শুরু হয়।
- নির্দিষ্ট প্রোগ্রামিং ভাষায় প্রবেশ:
- প্রথমদিকে regex শুধুমাত্র কিছু বিশেষ purpose-built টুল এবং অপারেটিং সিস্টেমের মধ্যে ব্যবহৃত হতো। পরে এটি বিভিন্ন প্রোগ্রামিং ভাষার মধ্যে অন্তর্ভুক্ত হতে শুরু করে। Perl ছিল একটি গুরুত্বপূর্ণ ভাষা যা regex ব্যবহারের জন্য জনপ্রিয়তা লাভ করেছিল।
- Java তে regex ব্যবহার শুরু হয় Java 1.4 সংস্করণ থেকে, যখন Java তে নতুন
java.util.regexপ্যাকেজটি পরিচিত হয়। এই প্যাকেজটি regex pattern matching এবং টেক্সট ম্যানিপুলেশন কাজগুলোকে সহজ করে তোলে।
- RegEx এর প্রসার:
- Java-সহ বিভিন্ন ভাষায় regex-এর শক্তিশালী সমর্থন থাকায়, এটি দ্রুত জনপ্রিয় হয়ে ওঠে। Regex বিভিন্ন লাইব্রেরি, ফ্রেমওয়ার্ক এবং টুলের মধ্যে অত্যন্ত ব্যবহৃত হচ্ছে, বিশেষ করে text validation, data scraping, log analysis, এবং input processing ক্ষেত্রে।
Java Regex এর ব্যবহার:
Java তে regex ব্যবহারের জন্য java.util.regex প্যাকেজটি ব্যবহৃত হয়। এই প্যাকেজে দুটি প্রধান ক্লাস রয়েছে:
Pattern: এটি regex প্যাটার্নের প্রতিনিধিত্ব করে এবং regex matching এবং টেক্সট প্রসেসিং অপারেশন সঞ্চালন করার জন্য ব্যবহৃত হয়।Matcher: এটি regex matching-এর জন্য ব্যবহৃত হয়, এবংPatternক্লাসের সাথে যুক্ত করে টেক্সটের উপর regex মিলে কিনা তা চেক করতে সাহায্য করে।
Java Regex এর মৌলিক উপাদানগুলো:
Pattern:- একটি regex প্যাটার্ন কম্পাইল করে এবং এটি ব্যবহারকারীকে matching কাজ করার সুযোগ দেয়।
Matcher:- এটি regex প্যাটার্নের সাথে একটি স্ট্রিং মিলানোর জন্য ব্যবহৃত হয় এবং কিভাবে একটি স্ট্রিং matching করতে হবে তা জানায়।
Java Regex এর সাধারণ ব্যবহার:
1. Regex Pattern Matching:
এখানে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে একটি স্ট্রিংয়ে একটি প্যাটার্ন খোঁজা হচ্ছে।
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
// Regex pattern
String pattern = "abc";
// String to search
String text = "abcdef abc ghi abc";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher to find the pattern in the text
Matcher m = p.matcher(text);
// Check if the pattern exists in the text
boolean found = m.find();
if (found) {
System.out.println("Pattern found!");
} else {
System.out.println("Pattern not found.");
}
}
}
আউটপুট:
Pattern found!
2. Replacing Text Using Regex:
আপনি regex ব্যবহার করে টেক্সটের কিছু অংশ প্রতিস্থাপন করতে পারেন।
import java.util.regex.*;
public class RegexReplaceExample {
public static void main(String[] args) {
// Regex pattern
String pattern = "abc";
// String to search
String text = "abcdef abc ghi abc";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher to find the pattern in the text
Matcher m = p.matcher(text);
// Replace occurrences of the pattern with "xyz"
String result = m.replaceAll("xyz");
System.out.println("Result: " + result);
}
}
আউটপুট:
Result: xyzdef xyz ghi xyz
3. Validating Email Address Using Regex:
নির্দিষ্ট ফরম্যাটে email validation করার জন্য regex ব্যবহার করা যেতে পারে।
import java.util.regex.*;
public class EmailValidator {
public static void main(String[] args) {
// Regex pattern for validating email
String pattern = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
// Email to validate
String email = "example@example.com";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher to check if the email matches the pattern
Matcher m = p.matcher(email);
if (m.matches()) {
System.out.println("Valid email address.");
} else {
System.out.println("Invalid email address.");
}
}
}
আউটপুট:
Valid email address.
Java Regex এর জনপ্রিয় ব্যবহার:
- Input Validation:
- Regex ব্যবহার করে বিভিন্ন ধরনের ইনপুট যেমন email, phone number, postal code, credit card number ইত্যাদি যাচাই করা যায়।
- Text Search and Replace:
- নির্দিষ্ট প্যাটার্ন অনুযায়ী স্ট্রিং অনুসন্ধান এবং প্রতিস্থাপন করতে regex ব্যবহার করা হয়, যেমন find and replace বা log file analysis।
- Log Analysis:
- Regex ব্যবহার করে বিভিন্ন ধরনের লগ ফাইল থেকে নির্দিষ্ট তথ্য বের করা যায়, যেমন error logs বা activity logs বিশ্লেষণ।
- Data Parsing:
- Regex ব্যবহার করে কমপ্লেক্স ডেটা যেমন CSV ফাইল বা structured data পার্সিং করা যায়।
- Scraping Data from Web Pages:
- Regex ব্যবহার করে web scraping এর মাধ্যমে ওয়েব পেজ থেকে নির্দিষ্ট তথ্য সংগ্রহ করা যেতে পারে।
Java Regex একটি অত্যন্ত শক্তিশালী টুল যা টেক্সট ম্যানিপুলেশন, ভ্যালিডেশন, এবং পার্সিংয়ের জন্য ব্যাপকভাবে ব্যবহৃত হয়। এটি Java প্রোগ্রামিং ভাষার অত্যন্ত গুরুত্বপূর্ণ অংশ এবং এর মাধ্যমে অনেক টেক্সট প্রসেসিং কাজ সহজে করা সম্ভব। Java 1.4 সংস্করণ থেকে java.util.regex প্যাকেজটির মাধ্যমে Regex ব্যবহার করা সহজ হয়েছে এবং এটি Java ডেভেলপারদের জন্য একটি অত্যন্ত দরকারী টুল।
Read more