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

জাভা রেগুলার এক্সপ্রেশনে \B মেটাক্যারেক্টার ব্যাখ্যা

সাবএক্সপ্রেশন/মেটাক্যারেক্টার "\B" নন-ওয়ার্ড বাউন্ডারি ম্যাচ করে। অর্থাৎ, এমন পজিশন যেখানে একপাশে ওয়ার্ড ক্যারেক্টার (a-z, A-Z, 0-9, _) আছে এবং অন্য পাশেও ওয়ার্ড ক্যারেক্টার আছে — বা দুপাশে নন-ওয়ার্ড ক্যারেক্টার আছে।

উদাহরণ ১: "cause" শব্দের নন-ওয়ার্ড বাউন্ডারি ম্যাচ

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

public class RegexExample {
    public static void main(String args[]) {
        String regex = "\\Bcause";
        Scanner sc = new Scanner(System.in);
        System.out.println("একটি স্ট্রিং দিন: ");
        String input = sc.nextLine();
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input);
        int count = 0;
        while (m.find()) {
            count++;
        }
        System.out.println("ম্যাচের সংখ্যা: " + count);
    }
}

আউটপুট

একটি স্ট্রিং দিন: A sentence doesn't end with because because, because is a conjunction
ম্যাচের সংখ্যা: 3

ব্যাখ্যা: "because" শব্দটি ৩বার এসেছে, কিন্তু প্রথম "because" (because,) এবং দ্বিতীয় "because" (because is) — দুটোর শুরুতে নন-ওয়ার্ড বাউন্ডারি আছে (পূর্বের ক্যারেক্টার স্পেস/কমা, পরের ক্যারেক্টার 'b' — উভয়ই ওয়ার্ড ক্যারেক্টার নয়)। তৃতীয় "because" (doesn't end with because) — এখানেও স্পেস পরে 'b'।

উদাহরণ ২: সকল নন-ওয়ার্ড বাউন্ডারি গণনা

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

public class Example {
    public static void main(String args[]) {
        System.out.println("ইনপুট স্ট্রিং দিন: ");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String regex = "\\B";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        int count = 0;
        System.out.println("নন-ওয়ার্ড বাউন্ডারিগুলো: ");
        while (matcher.find()) {
            count++;
        }
        System.out.println(count);
    }
}

আউটপুট

ইনপুট স্ট্রিং দিন: Hello how are you welcome to Tutorialspoint
নন-ওয়ার্ড বাউন্ডারিগুলো: 30

নোট: \b (ওয়ার্ড বাউন্ডারি) এবং \B (নন-ওয়ার্ড বাউন্ডারি) পরস্পর কমপ্লিমেন্ট।

  1. জাভা রেগুলার এক্সপ্রেশনে \w মেটাক্যারেক্টার ব্যাখ্যা

  2. জাভা রেগুলার এক্সপ্রেশনে \A মেটাক্যারেক্টার ব্যাখ্যা

  3. জাভা রেগুলার এক্সপ্রেশনে $ (ডলার) মেটাক্যারেক্টার ব্যাখ্যা

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