কম্পিউটার

জাভা রেগুলার এক্সপ্রেশন কি?


একটি নিয়মিত অভিব্যক্তি হল অক্ষরের একটি স্ট্রিং যা একটি ইনপুট পাঠ্য অনুসন্ধানের জন্য একটি প্যাটার্নকে সংজ্ঞায়িত/ফর্ম করে। একটি রেগুলার এক্সপ্রেশনে এক বা একাধিক অক্ষর থাকতে পারে, রেগুলার এক্সপ্রেশন ব্যবহার করে আপনি একটি স্ট্রিং অনুসন্ধান বা প্রতিস্থাপন করতে পারেন।

জাভা রেগুলার এক্সপ্রেশনের সাথে প্যাটার্ন মেলানোর জন্য java.util.regex প্যাকেজ প্রদান করে। এই প্যাকেজটিতে তিনটি শ্রেণী রয়েছে সেগুলো হল −

  • প্যাটার্ন ক্লাস: প্যাটার্ন এই প্যাকেজের ক্লাস একটি রেগুলার এক্সপ্রেশনের একটি সংকলিত উপস্থাপনা। একটি স্ট্রিং এর সাথে একটি রেগুলার এক্সপ্রেশন মেলানোর জন্য এই ক্লাসটি দুটি পদ্ধতি প্রদান করে:
  • কম্পাইল(): এই পদ্ধতিটি একটি রেগুলার এক্সপ্রেশনের প্রতিনিধিত্বকারী একটি স্ট্রিং গ্রহণ করে এবং প্যাটার্ন অবজেক্টের একটি অবজেক্ট প্রদান করে।
  • ম্যাচার(): এই পদ্ধতিটি একটি স্ট্রিং মান গ্রহণ করে এবং একটি ম্যাচার অবজেক্ট তৈরি করে যা প্রদত্ত স্ট্রিংকে বর্তমান প্যাটার্ন অবজেক্ট দ্বারা উপস্থাপিত প্যাটার্নের সাথে মেলে৷
  • ম্যাচার java.util.regex প্যাকেজের ক্লাস একটি ইঞ্জিন যা ম্যাচ অপারেশন করে। মিলিত মান খুঁজে পেতে আপনাকে এই শ্রেণীর দুটি পদ্ধতি ব্যবহার করতে হবে যথা:
  • find(): বর্তমান অবজেক্ট দ্বারা উপস্থাপিত ম্যাচ অপারেশন সফল হলে এই পদ্ধতিটি সত্য ফেরত দেয়, অন্যথায় এটি মিথ্যা ফেরত দেয়।
  • গ্রুপ() :এই পদ্ধতিটি একটি নির্দিষ্ট গোষ্ঠীর প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা মান গ্রহণ করে এবং ম্যাচ অপারেশনে নির্দিষ্ট গ্রুপ দ্বারা ক্যাপচার করা ক্রম ফেরত দেয়।
  • প্যাটার্ন সিনট্যাক্স ব্যতিক্রম − একটি PatternSyntaxException অবজেক্ট হল একটি অচেক করা ব্যতিক্রম যা একটি রেগুলার এক্সপ্রেশন প্যাটার্নে একটি সিনট্যাক্স ত্রুটি নির্দেশ করে৷

উদাহরণ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main( String args[] ) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input string: ");
      String input = sc.nextLine();
      String regex = "[^\\p{ASCII}]";  
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);  
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      //Creating an empty string buffer
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {          
          matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("Result: \n"+ sb.toString() );
   }
}

আউটপুট

Enter input string:
whÿ do we fall
Result:
wh do we fall

উদাহরণ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StartExample {
   public static void main(String[] args) {      
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();

      String regex = "[t]";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);  
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      int count =0;
      while (matcher.find()) {
         int start = matcher.start();
         System.out.println(start);
      }
   }
}

আউটপুট

Enter input text:
Hello how are you welcome to Tutorialspoint
26
31
42

  1. জাভাতে রেগুলার এক্সপ্রেশন ^ (ক্যারেট) মেটাক্যারেক্টার

  2. জাভাতে StringIndexOutOfBoundsException কি?

  3. পাইথন রেগুলার এক্সপ্রেশনে Raw String Notation কি?

  4. পাইথনে একটি নিয়মিত অভিব্যক্তি কি?