কম্পিউটার টিউটোরিয়াল

জাভাতে রেগেক্স ব্যবহার করে স্ট্রিং থেকে HTML ট্যাগ এক্সট্র্যাক্ট করা

java.util.regex প্যাকেজ জাভাতে ক্যারেক্টার সিকোয়েন্সে নির্দিষ্ট প্যাটার্ন খুঁজে বের করার জন্য বিভিন্ন ক্লাস প্রদান করে।

এই প্যাকেজের Pattern ক্লাস একটি রেগুলার এক্সপ্রেশন-এর কম্পাইলড রিপ্রেজেন্টেশন। একটি রেগুলার এক্সপ্রেশন স্ট্রিং-এর সাথে ম্যাচ করার জন্য এই ক্লাস দুটি মেথড প্রদান করে:

  • compile() - একটি রেগুলার এক্সপ্রেশন রিপ্রেজেন্ট করার স্ট্রিং গ্রহণ করে এবং Pattern ক্লাসের অবজেক্ট রিটার্ন করে।
  • matcher() - একটি স্ট্রিং ভ্যালু গ্রহণ করে এবং একটি Matcher অবজেক্ট তৈরি করে যা দেয়া স্ট্রিংকে বর্তমান Pattern অবজেক্ট দ্বারা রিপ্রেজেন্টেড প্যাটার্নের সাথে ম্যাচ করে।

java.util.regex প্যাকেজের Matcher ক্লাস একটি ইঞ্জিন যা ম্যাচ অপারেশন সম্পাদন করে। ম্যাচ করা ভ্যালু পেতে এই ক্লাসের দুটি মেথড ব্যবহার করতে হয়:

  • find() - বর্তমান অবজেক্ট দ্বারা রিপ্রেজেন্টেড ম্যাচ অপারেশন সফল হলে true রিটার্ন করে, অন্যথায় false।
  • group() - একটি ইন্টিজার ভ্যালু গ্রহণ করে যা একটি নির্দিষ্ট গ্রুপ রিপ্রেজেন্ট করে এবং ম্যাচ অপারেশন-এ নির্দিষ্ট গ্রুপ দ্বারা ক্যাপচার করা সিকোয়েন্স রিটার্ন করে।

তাই, একটি স্ট্রিং থেকে HTML ট্যাগ এক্সট্র্যাক্ট করতে:

  • Pattern অবজেক্ট তৈরি করুন প্রয়োজনীয় HTML ট্যাগ রিপ্রেজেন্ট করার রেগুলার এক্সপ্রেশন পাস করে Pattern ক্লাসের compile() মেথডে প্যারামিটার হিসেবে।
  • Pattern ক্লাসের matcher() মেথড ব্যবহার করে কাঙ্ক্ষিত স্ট্রিং-এর সাথে ম্যাচ করুন।
  • Matcher ক্লাসের find() মেথড ব্যবহার করে ম্যাচ হয়েছে কিনা যাচাই করুন।
  • ম্যাচ হলে Matcher ক্লাসের group() মেথড ব্যবহার করে ম্যাচ করা স্ট্রিং রিট্রিভ করুন।

উদাহরণ

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class ExtractHtmlTag { 
    public static void main(String[] args) { 
        String str = "Welcome to <b>Tutorialspoint</b>"; 
        Pattern pattern = Pattern.compile("<b>(\\S+)</b>"); 
        Matcher matcher = pattern.matcher(str); 
        if (matcher.find()) { 
            String result = matcher.group(1); 
            System.out.println(result); 
        } 
    } 
}

আউটপুট

Tutorialspoint

ব্যাখ্যা: রেগেক্স <b>(\\S+)</b> এ <b> এবং </b> লিটারেল ট্যাগ, (\\S+) এক বা অধিক নন-হোয়াইটস্পেস ক্যারেক্টার ক্যাপচার করে গ্রুপ ১-এ। matcher.group(1) ক্যাপচার করা গ্রুপ (Tutorialspoint) রিটার্ন করে।

  1. জাভা রেগেক্স দিয়ে ফিক্সড সেট অফ ক্যারেক্টার ম্যাচ করা

  2. জাভা রেগেক্স দিয়ে যেকোনো ক্যারেক্টার ম্যাচ করা (.)

  3. জাভাতে রেগেক্স ব্যবহার করে ডেট ফরম্যাট ভ্যালিডেট করা (MM-DD-YYYY)

  4. জাভাতে রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং থেকে নম্বর বের করা