Word Boundaries: \b এবং \B এর ব্যবহার

Anchors এবং Boundaries - জাভা রেজেক্স (Java Regex) - Java Technologies

298

Java রেগুলার এক্সপ্রেশন (Regex) প্যাটার্নে \b এবং \B শব্দের সীমানা (word boundaries) নির্ধারণের জন্য ব্যবহৃত হয়। এগুলি সাধারণত Word Boundaries সংক্রান্ত কার্যাবলি যেমন শব্দের শুরু এবং শেষ চিহ্নিত করার জন্য ব্যবহৃত হয়।

১. \b (Word Boundary):

\b একটি শব্দ সীমানা (word boundary) নির্ধারণ করে, যা শব্দের শুরু বা শেষকে চিহ্নিত করে। এটি একটি পজিটিভ অ্যাডভান্স মেটা ক্যারেক্টার যা শব্দের সীমারেখা চিহ্নিত করে। এটি এমন একটি অবস্থান যেখানে একটি শব্দ (word) এবং একটি অক্ষরের মধ্যে পার্থক্য থাকে।

  • Word Character: এটি আলফানিউমেরিক (a-z, A-Z, 0-9) এবং আন্ডারস্কোর (_) দ্বারা গঠিত।
  • Non-word Character: এটি এমন চরিত্র যা \w থেকে আলাদা, যেমন স্পেস, পংক্তি বিরতি, সেমিকোলন ইত্যাদি।

\b এর ব্যবহার:

  • \b শব্দের শুরু বা শেষের অবস্থান চিহ্নিত করতে ব্যবহৃত হয়, এবং এটি শব্দের মধ্যে সীমানা নির্ধারণ করে।

উদাহরণ:

import java.util.regex.*;

public class WordBoundaryExample {
    public static void main(String[] args) {
        // প্যাটার্ন তৈরি করা
        Pattern pattern = Pattern.compile("\\bjava\\b");

        // Matcher তৈরি করা
        Matcher matcher = pattern.matcher("java is a programming language. Java is also popular.");

        // find() মেথড ব্যবহার করে প্যাটার্ন খোঁজা
        while (matcher.find()) {
            System.out.println("Found match: " + matcher.group());
        }
    }
}

Output:

Found match: java

ব্যাখ্যা:

  • \\bjava\\b প্যাটার্নটি java শব্দটি শুধুমাত্র যখন সীমানায় থাকে তখনই ম্যাচ করবে। এটি শুধুমাত্র সেই java শব্দগুলোর জন্য মিলে, যেগুলি অন্য কোনো অক্ষর দ্বারা আবৃত নয়। অর্থাৎ Java বা java. এর মধ্যে সীমানা ছাড়াও, এটা "java" কে মেলাতে সক্ষম হয়।
  • \b শব্দের সীমানা চিহ্নিত করতে সহায়তা করে, তাই এটি একটি নির্দিষ্ট শব্দের শুরু এবং শেষের মধ্যে সীমানা নির্ধারণ করে।

২. \B (Non-word Boundary):

\B একটি নেগেটিভ word boundary নির্ধারণ করে, যা শব্দের সীমানা ছাড়া অন্য কোনো অবস্থান চিহ্নিত করে। এটি শব্দের মধ্যে যেখানে \b মেলে না, সেখানে মেলে। এটি এমন কোনো অবস্থান চিহ্নিত করে যেখানে শব্দ এবং অক্ষরের মধ্যে কোনও সীমানা নেই।

  • \B শব্দের শুরু এবং শেষের বাইরে, যেখানে শব্দের সীমানা নেই, সেখানে মেলে।

\B এর ব্যবহার:

  • \B শব্দের সীমানা ছাড়া অবস্থান চিহ্নিত করে, যেমন শব্দের মধ্যে কোনও সীমারেখা নেই।

উদাহরণ:

import java.util.regex.*;

public class NonWordBoundaryExample {
    public static void main(String[] args) {
        // প্যাটার্ন তৈরি করা
        Pattern pattern = Pattern.compile("\\Bjava\\B");

        // Matcher তৈরি করা
        Matcher matcher = pattern.matcher("java is a programming language. Java is also popular.");

        // find() মেথড ব্যবহার করে প্যাটার্ন খোঁজা
        while (matcher.find()) {
            System.out.println("Found match: " + matcher.group());
        }
    }
}

Output:

Found match: java

ব্যাখ্যা:

  • \\Bjava\\B প্যাটার্নটি শুধুমাত্র java শব্দটিকে এমন অবস্থানে মেলে যখন শব্দের সীমানা ছাড়া অন্য অবস্থানে থাকে। তবে এখানে java একটি মেলানো শব্দ হিসেবে হবে, কিন্তু যদি কোনও সীমানা থাকে (যেমন স্পেস বা পাংচুয়েশন), তবে এটি মেলবে না।
  • \B শুধুমাত্র শব্দের সীমানা ছাড়ানো অবস্থানকে চিহ্নিত করে, যেখানে অক্ষরের মধ্যে সীমানা নেই।

\b এবং \B এর তুলনা:

মেটা ক্যারেক্টারবর্ণনাউদাহরণ
\bশব্দের সীমানা চিহ্নিত করে (word boundary)"\\bjava\\b" — যেখানে java শব্দটি অন্য শব্দের সাথে একত্রিত নয়।
\Bশব্দের সীমানার বাইরে অবস্থান চিহ্নিত করে (non-word boundary)"\\Bjava\\B" — যেখানে java শব্দের সীমানা ছাড়াই থাকবে।

প্রয়োগ উদাহরণ:

  1. \b:
    • প্যাটার্নে \bjava\b ব্যবহার করলে এটি স্ট্রিংয়ের মধ্যে শুধুমাত্র java শব্দটি খুঁজে বের করবে, এবং অন্য কোনো অক্ষরের সাথে মিলবে না (যেমন, Java123 বা java! এর সাথে নয়)।
  2. \B:
    • \Bjava\B ব্যবহার করলে এটি স্ট্রিংয়ে এমন java খুঁজে পাবে যা কোনো শব্দ সীমানায় না থাকে, যেমন xjava123 বা 123java

  • \b এবং \B রেগুলার এক্সপ্রেশন প্যাটার্নের শব্দ সীমানা নির্ধারণের জন্য ব্যবহৃত হয়।
  • \b শব্দের শুরু বা শেষ চিহ্নিত করে, যেখানে শব্দের সীমানা রয়েছে।
  • \B শব্দ সীমানা ছাড়া অন্য কোনো অবস্থান চিহ্নিত করে, যেখানে শব্দের সীমানা নেই।
  • \b এবং \B রেগুলার এক্সপ্রেশনের মধ্যে পার্থক্য বোঝা খুবই গুরুত্বপূর্ণ যখন আপনি বিশেষভাবে শব্দের সীমারেখায় বা বাইরে খোঁজ করতে চান।
Content added By
Promotion

Are you sure to start over?

Loading...