ওয়ার্ড বাউন্ডারি (\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` প্যাটার্ন ব্যবহার করুন শব্দ-স্তরের ম্যাচের জন্য।