জাভার java.util.regex প্যাকেজে Pattern ক্লাস একটি রেগুলার এক্সপ্রেশনের কম্পাইলড রিপ্রেজেন্টেশন। quote() মেথড একটি স্ট্রিং মান গ্রহণ করে এবং এমন একটি প্যাটার্ন স্ট্রিং রিটার্ন করে যা দিয়ে দেয়া স্ট্রিংটি শুধুমাত্র আক্ষরিকভাবে ম্যাচ করবে। অর্থাৎ, দেওয়া স্ট্রিংয়ের সকল মেটাক্যারেক্টার ও এসকেপ সিকোয়েন্স নিরপেক্ষ করে দেওয়া হয়, কিন্তু স্ট্রিংয়ের অর্থ অপরিবর্তিত থাকে।
উদাহরণ ১: ব্যবহারকারীর ইনপুট থেকে শব্দ খোঁজা
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteExample {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট স্ট্রিং দিন:");
String input = sc.nextLine();
System.out.print("খুঁজতে চাওয়া স্ট্রিং দিন: ");
String regex = Pattern.quote(sc.nextLine());
System.out.println("প্যাটার্ন স্ট্রিং: " + regex);
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("ম্যাচ পাওয়া গেল");
} else {
System.out.println("ম্যাচ পাওয়া যায়নি");
}
}
}
আউটপুট
ইনপুট স্ট্রিং দিন: This is an example program demonstrating the quote() method খুঁজতে চাওয়া স্ট্রিং দিন: the প্যাটার্ন স্ট্রিং: \Qthe\E ম্যাচ পাওয়া গেল
উদাহরণ ২: রেগেক্স মেটাক্যারেক্টারকে আক্ষরিক ট্রিট করা
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteExample {
public static void main(String args[]) {
String regex = "[aeiou]";
String input = "Hello how are you welcome to Tutorialspoint";
Pattern.compile(regex);
regex = Pattern.quote(regex);
System.out.println("প্যাটার্ন স্ট্রিং: " + regex);
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("ইনপুট স্ট্রিং-এ স্বরবর্ণ আছে");
} else {
System.out.println("ইনপুট স্ট্রিং-এ স্বরবর্ণ নেই");
}
}
}
আউটপুট
প্যাটার্ন স্ট্রিং: \Q[aeiou]\E ইনপুট স্ট্রিং-এ স্বরবর্ণ আছে
নোট: \Q...\E ব্লকের ভেতরের সব ক্যারেক্টার আক্ষরিকভাবে ট্রিট হয়। ডাইনামিক রেগেক্স তৈরি করার সময় ইউজার ইনপুট স্যানিটাইজ করতে এটি খুব ব্যবহারী।