কম্পিউটার

কিভাবে একটি ইনপুট বিরুদ্ধে একাধিক regex নিদর্শন চেক করতে? জাভা ব্যবহার করে।


"|" মেটা অক্ষর: মেটা অক্ষর "|" জাভা রেগুলার এক্সপ্রেশনে আপনাকে একাধিক রেগুলার এক্সপ্রেশনের সাথে মেলাতে অনুমতি দেয় উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট ইনপুট টেক্সটকে একাধিক এক্সপ্রেশনের সাথে মেলাতে চান তাহলে আপনাকে এটি ব্যবহার করে আলাদা করতে হবে:

exp1|exp2|exp3

উদাহরণ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SampleExample {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your input: ");
      String input = sc.nextLine();
      //Regular expression
      String regex = "\\d{10}|^[aeiou]";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Creating a Matcher object
      Matcher matcher = pattern.matcher(input);
      if(matcher.find()) {
         System.out.println(input+" is valid");
      }else {
         System.out.println(input+" is not valid");
      }
   }
}

আউটপুট 1

Enter your input:
9848033228
9848033228 is valid

আউটপুট 2

Enter your input:
an apple a day keeps doctor away
an apple a day keeps doctor away is valid

তালিকা বস্তু ব্যবহার করা

আরেকটি সমাধান হল আপনি পৃথক প্যাটার্ন অবজেক্ট ব্যবহার করে সমস্ত রেগুলার এক্সপ্রেশন কম্পাইল করুন এবং একটি তালিকা অবজেক্টে যোগ করুন এবং ইনপুট টেক্সটে মিল খুঁজে বের করুন −

List list = new ArrayList<>();
list.add(Pattern.compile(regex1));
list.add(Pattern.compile(regex2));
for (Pattern pattern: list) {
   Matcher matcher = pattern.matcher(input);
   if(matcher.find()) {
      . . . . . . . . . . . . . . .
   }else {
      . . . . . . . . . . . . . . .
   }
}

উদাহরণ

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MultipleRegex {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your input: ");
      String input = sc.nextLine();
      //Regular expressions
      String regex1 = "\\d{10}";
      String regex2 = "^[aeiou]";
      //Creating a pattern objects
      Pattern pattern1 = Pattern.compile(regex1);
      Pattern pattern2 = Pattern.compile(regex2);
      //Creating an List object
      List<Pattern> patterns = new ArrayList<>();
      patterns.add(pattern1);
      patterns.add(pattern2);
      for (Pattern pattern: patterns) {
         Matcher matcher = pattern.matcher(input);
         if(matcher.find()) {
            System.out.println("For regex "+pattern.pattern()+" "+input+" is valid");
         } else {
            System.out.println("For regex "+pattern.pattern()+" "+input+" is not valid");
         }
      }
   }
}

আউটপুট 1

Enter your input:
9848033228
For regex \d{10} 9848033228 is valid
For regex ^[aeiou] 9848033228 is not valid

আউটপুট 2

Enter your input:
an apple a day keeps doctor away
For regex \d{10} an apple a day keeps doctor away is not valid
For regex ^[aeiou] an apple a day keeps doctor away is valid

  1. কিভাবে জাভা রেজেক্স ব্যবহার করে অক্ষরের একটি পরিসীমা মেলে

  2. জাভা RegEx ব্যবহার করে অক্ষরের একটি নির্দিষ্ট সেটের সাথে কীভাবে মিলানো যায়

  3. জাভাতে রেজেক্স ব্যবহার করে MM-DD-YYYY-এর মতো প্রদত্ত তারিখ বিন্যাস কীভাবে যাচাই করবেন?

  4. জাভাতে রেজেক্স ব্যবহার করে কীভাবে একটি স্ট্রিং থেকে একটি এইচটিএমএল ট্যাগ বের করবেন?