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

জাভা রেগুলার এক্সপ্রেশন: পুরো শব্দ ম্যাচ করা (Word Boundary \b)


ওয়ার্ড বাউন্ডারি (\b) কী?

মেটা ক্যারেক্টার `\b` শব্দের সীমানা (word boundary) ম্যাচ করে। অর্থাৎ:

  • শব্দের শুরুতে (প্রথম ক্যারেক্টারের আগে)
  • শব্দের শেষে (শেষ ক্যারেক্টারের পরে)
  • শব্দ এবং নন-শব্দ ক্যারেক্টারের মাঝপথে

শব্দ ক্যারেক্টার (word character): `[a-zA-Z0-9_]`। বাকিগুলো নন-ওয়ার্ড।

পুরো শব্দ ম্যাচ করার সিনট্যাক্স

শব্দটিকে `\b` দিয়ে ঘেরে দিন: \bword\b

  • \btest\b — শুধু "test" শব্দটি ম্যাচ করবে, "testing", "contest", "test123" ম্যাচ করবে না।

কোড উদাহরণ: "test" শব্দের উপস্থিতি গণনা

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

public class WordBoundaryExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("ইনপুট টেক্সট লিখুন: ");
        String input = sc.nextLine();
        
        // পুরো শব্দ "test" ম্যাচ
        String regex = "\\btest\\b";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        
        System.out.println("শব্দ 'test'-এর উপস্থিতি সংখ্যা: " + count);
    }
}

আউটপুট উদাহরণ

ইনপুট টেক্সট লিখুন: sample data: test test test
শব্দ 'test'-এর উপস্থিতি সংখ্যা: ৩

ওয়ার্ড বাউন্ডারি ভিজ্যুয়ালাইজেশন

টেক্সট: "test testing contest test123 test"
ইনডেক্স: 0123456789...
\btest\b ম্যাচ:     ^^^^           ^^^^
// "test" (শুরু), "test" (শেষ) — মাঝপথের দুটি ম্যাচ হয়নি

সাধারণ ওয়ার্ড বাউন্ডারি প্যাটার্ন

রেজেক্সঅর্থম্যাচ করবেম্যাচ করবে না
\bcat\bশব্দ "cat""cat", " a cat ", ".cat,""catfish", "scat", "cat5"
\b\w+\bসম্পূর্ণ শব্দ (এক বা অধিক)সব শব্দঅংশিক শব্দ
\b\d+\bসম্পূর্ণ সংখ্যা"123", " 45 ""123abc", "a123"
\Bনন-ওয়ার্ড বাউন্ডারি"cat" trong "scat""cat" trong " cat "

সাবধানতা: জাভা স্ট্রিংয়ে এস্কেপ

জাভা স্ট্রিং লিটারেলে `\b` লেখলে এটি ব্যাকস্পেস ক্যারেক্টার বুঝে। রেগেক্সে `\b` পাঠাতে ডাবল ব্যাকস্ল্যাশ লাগে: "\\btest\\b"।

সারসংক্ষেপ

`\b` মেটা ক্যারেক্টার পুরো শব্দ ম্যাচ করার জন্য অপরিহার্য। এটি পার্শিয়াল ম্যাচ (substring match) রোধ করে। সার্চ, রিপ্লেস, ভ্যালিডেশন — সব জায়গায় `\bword\b` প্যাটার্ন ব্যবহার করুন শব্দ-স্তরের ম্যাচের জন্য।

  1. জাভা রেগুলার এক্সপ্রেশনে (?> re) সাব-এক্সপ্রেশন ব্যাখ্যা

  2. জাভা রেগুলার এক্সপ্রেশনে (?: re) সাব-এক্সপ্রেশন ব্যাখ্যা

  3. জাভা রেগুলার এক্সপ্রেশনে (re) সাব-এক্সপ্রেশন ব্যাখ্যা

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