Pattern.quote() মেথডটি Java Regex (Regular Expressions) এর অংশ, যা java.util.regex.Pattern ক্লাসে পাওয়া যায়। এই মেথডটি Special Characters এর জন্য একটি উপকারী উপায় প্রদান করে, যা রেগুলার এক্সপ্রেশন প্যাটার্নে ব্যবহার করা হয়। যখন আপনি কোনও স্ট্রিং ব্যবহার করতে চান যা রেগুলার এক্সপ্রেশন হিসেবে বিশেষ অর্থ বহন করে, তখন আপনি Pattern.quote() মেথডটি ব্যবহার করে সেই স্ট্রিংটিকে literal (লিটারাল) হিসেবে নির্দিষ্ট করতে পারেন।
Pattern.quote() মেথডের ধারণা:
Pattern.quote(String s) মেথডটি একটি স্ট্রিং গ্রহণ করে এবং সেই স্ট্রিংয়ের সমস্ত স্পেশাল ক্যারেক্টারকে লিটারাল ক্যারেক্টারে পরিণত করে, যাতে তারা রেগুলার এক্সপ্রেশন প্যাটার্নের অংশ হিসেবে ব্যবহৃত না হয়। এটি স্ট্রিংটি একটি সাধারণ রেগুলার এক্সপ্রেশন হিসেবে বিবেচিত হবে, যা কোনও বিশেষ রেগুলার এক্সপ্রেশন প্যাটার্নের অংশ হবে না।
Special Characters in Regex:
রেগুলার এক্সপ্রেশন (Regex)-এ কিছু স্পেশাল ক্যারেক্টার আছে, যেমন *, +, ?, . (ডট), [], {}, ^, $, |, () ইত্যাদি, যেগুলি রেগুলার এক্সপ্রেশন প্যাটার্নের বিশেষ অর্থ বহন করে। এই ক্যারেক্টারগুলিকে literal characters হিসেবে ব্যবহারের জন্য Pattern.quote() ব্যবহার করা হয়।
Pattern.quote() মেথড উদাহরণ:
ধরা যাক, আমাদের একটি স্ট্রিং আছে যা একটি স্পেশাল ক্যারেক্টার যেমন * ধারণ করে। যদি আমরা সরাসরি এই স্ট্রিংটি রেগুলার এক্সপ্রেশন হিসেবে ব্যবহার করি, তবে * ক্যারেক্টারটি একটি বিশেষ অর্থ দেবে (যেমন শূন্য বা একাধিক পুনরাবৃত্তি)। তাই আমরা চাই, * ক্যারেক্টারটি সাধারণ অক্ষর হিসেবে ব্যবহৃত হোক। এই কাজটি Pattern.quote() মেথডের মাধ্যমে করা সম্ভব।
import java.util.regex.*;
public class PatternQuoteExample {
public static void main(String[] args) {
String text = "The price of the car is 30000 dollars.";
// Using Pattern.quote() to escape the special character
String specialString = "30000 dollars.";
String regex = Pattern.quote(specialString); // Quote the string to handle special characters
// Create a pattern to match the quoted string
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
// Searching for the quoted string in the text
if (matcher.find()) {
System.out.println("Found the quoted string: " + matcher.group());
}
}
}
ব্যাখ্যা:
Pattern.quote(specialString): এখানেspecialString(যেমন"30000 dollars.") একটি স্ট্রিং যা রেগুলার এক্সপ্রেশন প্যাটার্নে বিশেষ অর্থ বহন করতে পারে (যেমন, ডট.একটি বিশেষ ক্যারেক্টার), তাইPattern.quote()ব্যবহার করে এই স্ট্রিংটি "লিটারাল" বানানো হয়েছে।matcher.find(): এই মেথডটি টেক্সটের মধ্যে স্ট্রিংটি খুঁজে বের করবে।
আউটপুট:
Found the quoted string: 30000 dollars.
এখানে, Pattern.quote() ব্যবহার করার মাধ্যমে আমরা 30000 dollars. স্ট্রিংটি একটি literal string হিসেবে ব্যবহার করতে পেরেছি এবং স্পেশাল ক্যারেক্টার . এর প্রভাব থেকে এটি মুক্ত রাখা হয়েছে।
Pattern.quote() এর সুবিধা:
- Escape Special Characters: রেগুলার এক্সপ্রেশন প্যাটার্নের মধ্যে স্পেশাল ক্যারেক্টার ব্যবহারের ক্ষেত্রে তা লিটারাল ক্যারেক্টার হিসেবে ব্যবহৃত হবে, যাতে সেই ক্যারেক্টারটি রেগুলার এক্সপ্রেশন প্যাটার্নে বিশেষ অর্থ না দেয়।
- Code Simplicity:
Pattern.quote()ব্যবহারের মাধ্যমে আপনি স্পেশাল ক্যারেক্টারগুলিকে "escape" করার জন্য অতিরিক্ত কোড লিখতে হবে না। - Maintainability: এটি কোডটিকে আরও সহজ এবং রক্ষণাবেক্ষণযোগ্য করে তোলে, কারণ আপনি স্পেশাল ক্যারেক্টারগুলির জন্য আলাদা করে escape sequence ব্যবহার করার পরিবর্তে এক লাইনে এটি করতে পারেন।
Special Characters এর তালিকা:
.(ডট) – যেকোনো একক ক্যারেক্টার (একটি wildcard)*– শূন্য বা একাধিক পুনরাবৃত্তি+– এক বা একাধিক পুনরাবৃত্তি?– শূন্য বা একবার[]– ক্যারেক্টার ক্লাস (একটি নির্দিষ্ট ক্যারেক্টার বা ক্যারেক্টারের যেকোনো একটি){}– নির্দিষ্ট পরিসরের পুনরাবৃত্তি^– স্ট্রিংয়ের শুরু$– স্ট্রিংয়ের শেষ|– OR অপারেটর()– গ্রুপিং (অথবা সাব-প্যাটার্ন)
Pattern.quote() একটি কার্যকরী টুল যা রেগুলার এক্সপ্রেশন প্যাটার্নে literal strings ব্যবহার করার সময় বিশেষ ক্যারেক্টারগুলির প্রভাব এড়াতে সহায়তা করে। যখন আপনি একটি স্ট্রিংকে রেগুলার এক্সপ্রেশন প্যাটার্ন হিসেবে ব্যবহার করতে চান, কিন্তু সেটিতে স্পেশাল ক্যারেক্টার থাকে, তখন Pattern.quote() ব্যবহার করা উচিত। এটি বিশেষ ক্যারেক্টারগুলিকে escape করে এবং স্ট্রিংটিকে লিটারাল হিসেবে ব্যবহার করতে সহায়তা করে।
Read more