Java Regular Expression (RegEx) Examples

Java Technologies - জাভা উদাহরন (Java  Examples)
153
153

নিচে কিছু জাভা Regular Expression (RegEx) উদাহরণ দেওয়া হলো। RegEx ব্যবহার করে আপনি স্ট্রিং থেকে নির্দিষ্ট প্যাটার্ন ম্যাচ করতে, অনুসন্ধান করতে এবং রিপ্লেস করতে পারেন।

1. Basic Regular Expression Match

এটি একটি সাধারণ উদাহরণ যেখানে একটি নির্দিষ্ট প্যাটার্ন ব্যবহার করে স্ট্রিং মিলিয়ে দেখানো হয়েছে।

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

public class RegExExample {
    public static void main(String[] args) {
        String text = "Hello, World!";

        // একটি সাধারণ প্যাটার্ন তৈরি করুন
        String regex = "Hello";
        
        // Pattern ও Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        // প্যাটার্ন মেলা কিনা তা চেক করা
        if (matcher.find()) {
            System.out.println("Pattern Found!");
        } else {
            System.out.println("Pattern Not Found!");
        }
    }
}

Output:

Pattern Found!

2. Validate Email Address

এখানে একটি ইমেইল ঠিকানা যাচাই করার জন্য RegEx ব্যবহার করা হয়েছে।

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

public class EmailValidator {
    public static void main(String[] args) {
        String email = "example@example.com";
        
        // ইমেইল প্যাটার্ন
        String regex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
        
        // Pattern ও Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        
        // ইমেইল বৈধ কিনা তা চেক করা
        if (matcher.matches()) {
            System.out.println("Valid Email Address!");
        } else {
            System.out.println("Invalid Email Address!");
        }
    }
}

Output:

Valid Email Address!

3. Extract Digits from a String

এটি একটি উদাহরণ যেখানে স্ট্রিং থেকে সমস্ত ডিজিট বের করা হয়েছে।

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

public class ExtractDigits {
    public static void main(String[] args) {
        String text = "The price is 500 dollars and 20 cents.";
        
        // ডিজিট প্যাটার্ন
        String regex = "\\d+";
        
        // Pattern ও Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        // সমস্ত ডিজিট বের করা
        while (matcher.find()) {
            System.out.println("Found digit: " + matcher.group());
        }
    }
}

Output:

Found digit: 500
Found digit: 20

4. Replace All Spaces with Hyphens

এখানে স্ট্রিং এর সমস্ত স্পেসকে হাইফেন দিয়ে প্রতিস্থাপন করা হয়েছে।

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

public class ReplaceSpaces {
    public static void main(String[] args) {
        String text = "Java is awesome";

        // স্পেসকে হাইফেনে প্রতিস্থাপন করার প্যাটার্ন
        String regex = "\\s";
        
        // Pattern ও Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);
        
        // সমস্ত স্পেসকে হাইফেনে প্রতিস্থাপন করা
        String result = matcher.replaceAll("-");
        
        System.out.println(result);
    }
}

Output:

Java-is-awesome

5. Match a Phone Number (US Format)

এখানে একটি যুক্তরাষ্ট্রের ফোন নম্বর যাচাই করার জন্য RegEx ব্যবহার করা হয়েছে।

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

public class PhoneNumberValidator {
    public static void main(String[] args) {
        String phoneNumber = "(123) 456-7890";
        
        // ফোন নম্বরের প্যাটার্ন
        String regex = "^\\(\\d{3}\\) \\d{3}-\\d{4}$";
        
        // Pattern ও Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(phoneNumber);
        
        // ফোন নম্বর বৈধ কিনা তা চেক করা
        if (matcher.matches()) {
            System.out.println("Valid Phone Number!");
        } else {
            System.out.println("Invalid Phone Number!");
        }
    }
}

Output:

Valid Phone Number!

6. Match a URL

এটি একটি উদাহরণ যেখানে URL যাচাই করা হয়েছে।

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

public class URLValidator {
    public static void main(String[] args) {
        String url = "https://www.example.com";
        
        // URL প্যাটার্ন
        String regex = "^(https?|ftp)://[^\s/$.?#].[^\s]*$";
        
        // Pattern ও Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(url);
        
        // URL বৈধ কিনা তা চেক করা
        if (matcher.matches()) {
            System.out.println("Valid URL!");
        } else {
            System.out.println("Invalid URL!");
        }
    }
}

Output:

Valid URL!

ব্যাখ্যা:

  • Pattern: এটি RegEx প্যাটার্ন তৈরি করতে ব্যবহৃত হয়। এটি compile() মেথড ব্যবহার করে তৈরি করা হয়।
  • Matcher: এটি স্ট্রিংয়ের সাথে প্যাটার্নের মেলা খুঁজতে ব্যবহৃত হয়। matcher() মেথড দ্বারা এটি স্ট্রিং এর ওপর প্রয়োগ করা হয়।
  • find(): এটি প্যাটার্নের প্রথম মেলানো অংশ খুঁজে বের করে।
  • matches(): এটি পুরো স্ট্রিংয়ের সাথে প্যাটার্নের মিল চেক করে।
  • replaceAll(): এটি সমস্ত মেলানো অংশকে অন্য কিছু দিয়ে প্রতিস্থাপন করে।

Java Regular Expression (RegEx) Concepts:

  1. Metacharacters: যেমন . (যেকোনো এক অক্ষর), ^ (স্ট্রিংয়ের শুরু), $ (স্ট্রিংয়ের শেষ), \\d (ডিজিট), \\s (স্পেস), \\w (অক্ষর, ডিজিট বা আন্ডারস্কোর)।
  2. Quantifiers: যেমন + (এক বা একাধিক), * (শূন্য বা একাধিক), ? (একটি অংশ থাকতে পারে বা নাও থাকতে পারে)।
  3. Character Classes: যেমন [a-z] (সব lowercase অক্ষর), [0-9] (সব ডিজিট)।
  4. Grouping: যেমন (abc) (এই অংশটি একটি গ্রুপ হিসেবে কাজ করবে)।

এই উদাহরণগুলির মাধ্যমে আপনি জাভাতে RegEx ব্যবহার করতে পারবেন বিভিন্ন ধরনের টেক্সট এবং প্যাটার্ন মিলিয়ে দেখা, ম্যানিপুলেট করা এবং ফিল্টার করার জন্য।

Content added By

Pattern এবং Matcher Example: Text Searching এবং Matching এর জন্য RegEx ব্যবহার

101
101

Pattern এবং Matcher ক্লাস জাভাতে Regular Expressions (RegEx) ব্যবহার করে টেক্সটের মধ্যে মেচিং বা প্যাটার্ন খোঁজার জন্য ব্যবহৃত হয়। এখানে, আমরা কিভাবে একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট প্যাটার্ন খুঁজে বের করা যায় এবং মেচিং চেক করা যায় তা দেখাবো।

উদাহরণ ১: একটি নির্দিষ্ট প্যাটার্ন খোঁজা এবং ম্যাচিং করা

import java.util.regex.*;

public class RegexExample {
    public static void main(String[] args) {
        // প্যাটার্ন তৈরি
        String regex = "java";
        String input = "I am learning java programming in java.";

        // Pattern এবং Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        // Matcher ব্যবহার করে প্যাটার্ন খোঁজা
        while (matcher.find()) {
            System.out.println("Found the pattern at index: " + matcher.start());
        }
    }
}

ব্যাখ্যা:

  1. Pattern.compile(regex): এখানে regex হল যেটি খুঁজতে চাই। এই উদাহরণে আমরা "java" প্যাটার্ন খুঁজছি।
  2. matcher.find(): এটি স্ট্রিংয়ের মধ্যে প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়। যদি প্যাটার্ন পাওয়া যায়, এটি সত্য (true) ফেরত দেয় এবং ম্যাচের অবস্থানকে matcher.start() দিয়ে দেখা যায়।
  3. matcher.start(): এটি বর্তমান মেচিং প্যাটার্নের প্রথম অক্ষরের ইনডেক্স দেয়।

আউটপুট:

Found the pattern at index: 17
Found the pattern at index: 42

এটি স্ট্রিংয়ের মধ্যে "java" প্যাটার্ন দুটি স্থানে খুঁজে পেয়েছে: একটিতে ইনডেক্স ১৭ এবং অন্যটি ৪২ তে।


উদাহরণ ২: প্যাটার্ন মেচিং চেক করা (Matches এবং LookingAt)

Matcher.matches() এবং Matcher.lookingAt() ব্যবহার করা যেতে পারে পুরো স্ট্রিং বা অংশের জন্য প্যাটার্ন মেচিং চেক করতে।

১. Matcher.matches() — পুরো স্ট্রিংয়ের সাথে প্যাটার্ন মেলে কিনা চেক করে

import java.util.regex.*;

public class MatchExample {
    public static void main(String[] args) {
        String regex = "java";
        String input = "java";

        // Pattern এবং Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        // Matcher.matches() ব্যবহার করে প্যাটার্ন পুরো স্ট্রিংয়ের সাথে মেলে কিনা চেক করা
        if (matcher.matches()) {
            System.out.println("The input matches the pattern.");
        } else {
            System.out.println("The input does not match the pattern.");
        }
    }
}

ব্যাখ্যা:

  • matcher.matches(): এটি পুরো স্ট্রিংয়ের সাথে প্যাটার্ন মেলানোর চেষ্টা করে। যদি পুরো স্ট্রিংটি প্যাটার্নের সাথে মিলে যায়, তাহলে এটি সত্য (true) ফেরত দেয়।

আউটপুট:

The input matches the pattern.

২. Matcher.lookingAt() — স্ট্রিংয়ের শুরুতে প্যাটার্ন মেলে কিনা চেক করে

import java.util.regex.*;

public class LookingAtExample {
    public static void main(String[] args) {
        String regex = "java";
        String input = "java programming";

        // Pattern এবং Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        // Matcher.lookingAt() ব্যবহার করে স্ট্রিংয়ের শুরুতে প্যাটার্ন মেলে কিনা চেক করা
        if (matcher.lookingAt()) {
            System.out.println("The pattern matches the beginning of the input.");
        } else {
            System.out.println("The pattern does not match the beginning of the input.");
        }
    }
}

ব্যাখ্যা:

  • matcher.lookingAt(): এটি স্ট্রিংয়ের প্রথম অংশে প্যাটার্ন মেলে কিনা তা পরীক্ষা করে। পুরো স্ট্রিং না মিললেও, যদি শুরুতে মেলে তবে এটি সত্য (true) ফেরত দেয়।

আউটপুট:

The pattern matches the beginning of the input.

উদাহরণ ৩: Replacing Text with RegEx

RegEx এর মাধ্যমে টেক্সট পরিবর্তন (replace) করা।

import java.util.regex.*;

public class ReplaceExample {
    public static void main(String[] args) {
        String regex = "\\d";  // সমস্ত ডিজিট খুঁজে বের করা
        String input = "I have 2 apples and 5 oranges.";
        
        // Pattern এবং Matcher তৈরি করা
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        // সমস্ত ডিজিট পরিবর্তন করা "X" দিয়ে
        String result = matcher.replaceAll("X");
        
        System.out.println("Original Text: " + input);
        System.out.println("Modified Text: " + result);
    }
}

ব্যাখ্যা:

  • matcher.replaceAll("X"): এটি সমস্ত প্যাটার্নের ম্যাচগুলিকে নির্দিষ্ট টেক্সট দিয়ে প্রতিস্থাপন করে। এখানে আমরা সমস্ত ডিজিটকে "X" দিয়ে পরিবর্তন করেছি।

আউটপুট:

Original Text: I have 2 apples and 5 oranges.
Modified Text: I have X apples and X oranges.

উদাহরণ ৪: Email Validation Using RegEx

ইমেইল ঠিকানা যাচাই করার জন্য একটি RegEx ব্যবহার করা।

import java.util.regex.*;

public class EmailValidationExample {
    public static void main(String[] args) {
        String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
        String email = "example@domain.com";
        
        // Pattern এবং Matcher তৈরি করা
        Pattern pattern = Pattern.compile(emailRegex);
        Matcher matcher = pattern.matcher(email);
        
        // ইমেইল ঠিকানা যাচাই করা
        if (matcher.matches()) {
            System.out.println("Valid Email Address");
        } else {
            System.out.println("Invalid Email Address");
        }
    }
}

ব্যাখ্যা:

  • RegEx: এখানে একটি ইমেইল ঠিকানার প্যাটার্ন ব্যবহার করা হয়েছে যা সাধারণত বৈধ ইমেইল ঠিকানা যাচাই করতে ব্যবহৃত হয়।
  • matcher.matches(): এটি সম্পূর্ণ স্ট্রিংকে যাচাই করে এবং সঠিক ইমেইল ঠিকানা হলে সত্য (true) ফেরত দেয়।

আউটপুট:

Valid Email Address

সারাংশ:

  • Pattern এবং Matcher ব্যবহার করে আপনি জাভায় শক্তিশালী টেক্সট খোঁজার এবং ম্যাচিং করার ক্ষমতা পান।
  • Pattern.compile() প্যাটার্ন তৈরি করতে এবং Matcher.matcher() স্ট্রিংয়ের সাথে প্যাটার্নের মিল পরীক্ষা করতে ব্যবহৃত হয়।
  • RegEx-এর মাধ্যমে আপনি সহজে টেক্সট পরিবর্তন, প্যাটার্ন খোঁজা, ইমেইল বা ফোন নম্বর যাচাই করা ইত্যাদি কার্যক্রম করতে পারবেন।
Content added By

Email Validation Example: RegEx এর মাধ্যমে Email Format Validation

87
87

Java Email Validation Example: এখানে একটি উদাহরণ দেওয়া হয়েছে যেটি RegEx (Regular Expression) ব্যবহার করে একটি ইমেইল ঠিকানা বৈধ কিনা তা যাচাই করবে। এই প্রক্রিয়াটি নিশ্চিত করবে যে ব্যবহারকারী যে ইমেইল ঠিকানা প্রদান করেছে তা সঠিক ফরম্যাটে রয়েছে কিনা।

RegEx দিয়ে Email Format Validation

এখানে একটি সাধারণ উদাহরণ দেওয়া হচ্ছে যেখানে Java-এর Pattern এবং Matcher ক্লাস ব্যবহার করে ইমেইল ঠিকানার ফরম্যাট যাচাই করা হবে।

import java.util.regex.*;

public class EmailValidator {
    public static void main(String[] args) {
        // কিছু টেস্ট ইমেইল
        String[] emails = {"test@example.com", "invalid-email.com", "user@domain", "valid.email@domain.com"};
        
        // ইমেইল যাচাই করার জন্য RegEx প্যাটার্ন
        String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
        
        // Pattern এবং Matcher ব্যবহার
        Pattern pattern = Pattern.compile(emailRegex);
        
        for (String email : emails) {
            Matcher matcher = pattern.matcher(email);
            
            if (matcher.matches()) {
                System.out.println(email + " is a valid email address.");
            } else {
                System.out.println(email + " is an invalid email address.");
            }
        }
    }
}

ব্যাখ্যা:

  1. RegEx (Regular Expression):
    • ^[a-zA-Z0-9_+&*-]+: ইমেইল অ্যাড্রেসের প্রথম অংশে বড় হাতের, ছোট হাতের অক্ষর, সংখ্যা, এবং কিছু বিশেষ চিহ্ন (যেমন _, +, &, *, -) থাকতে পারে।
    • (?:\\.[a-zA-Z0-9_+&*-]+)*: ডট (.) দিয়ে শুরু হতে পারে যেকোনো সংখ্যা, অক্ষর বা কিছু বিশেষ চিহ্ন নিয়ে পরবর্তী অংশ।
    • @: ইমেইল অ্যাড্রেসের মধ্যে @ চিহ্ন থাকতে হবে।
    • (?:[a-zA-Z0-9-]+\\.)+: ডোমেইন অংশে অক্ষর বা সংখ্যা থাকতে হবে, তারপর একটি ডট (.)।
    • [a-zA-Z]{2,7}$: ডোমেইনের শেষ অংশে ২ থেকে ৭টি অক্ষর থাকতে হবে (যেমন .com, .org, .net ইত্যাদি)।
  2. Pattern এবং Matcher:
    • Pattern.compile(emailRegex): RegEx প্যাটার্ন কম্পাইল করে একটি Pattern অবজেক্ট তৈরি করে।
    • matcher.matches(): এটি পরীক্ষা করে যে ইমেইল ঠিকানা দেওয়া প্যাটার্নের সাথে মিলে কিনা।

টেস্ট কেস:

  • test@example.com: বৈধ ইমেইল ঠিকানা।
  • invalid-email.com: অবৈধ ইমেইল ঠিকানা, কারণ @ চিহ্ন অনুপস্থিত।
  • user@domain: অবৈধ ইমেইল ঠিকানা, কারণ ডোমেইন এক্সটেনশন (যেমন .com, .org) অনুপস্থিত।
  • valid.email@domain.com: বৈধ ইমেইল ঠিকানা।

আউটপুট:

test@example.com is a valid email address.
invalid-email.com is an invalid email address.
user@domain is an invalid email address.
valid.email@domain.com is a valid email address.

এই কোডটি RegEx ব্যবহার করে ইমেইল ঠিকানার ফরম্যাট যাচাই করে। আপনি যেকোনো ইনপুট ইমেইল ঠিকানা এই কোডে পরীক্ষা করতে পারেন এবং দেখতে পাবেন এটি বৈধ কিনা।

Content added By

Phone Number Validation Example: RegEx এর মাধ্যমে Phone Number Validation

87
87

Phone number validation is commonly done using regular expressions (RegEx). You can use RegEx patterns to check if a phone number follows a specific format, such as having a certain number of digits or separating sections with hyphens or spaces.

Below is an example that demonstrates how to use RegEx for phone number validation in Java.

উদাহরণ: ফোন নাম্বার ভ্যালিডেশন (RegEx ব্যবহার করে)

এই উদাহরণটি দেখাবে কীভাবে জাভা-তে একটি ফোন নাম্বার ভ্যালিডেট করা যায় RegEx ব্যবহার করে, যাতে শুধুমাত্র সঠিক ফরম্যাটের ফোন নাম্বার গ্রহণ করা হয়।

import java.util.regex.*;

public class PhoneNumberValidation {
    public static void main(String[] args) {
        // ফোন নম্বর ভ্যালিডেশন জন্য RegEx প্যাটার্ন
        String regex = "^(\\+\\d{1,2}\\s?)?\\(?\\d{3}\\)?[-\\s]?\\d{3}[-\\s]?\\d{4}$";
        
        // কিছু টেস্ট নম্বর
        String[] phoneNumbers = {
            "+1 123-456-7890",    // Valid
            "(123) 456-7890",      // Valid
            "123 456 7890",        // Valid
            "+44 123 456 7890",    // Valid
            "123-456-789",         // Invalid
            "(123 456 7890",       // Invalid
            "1234 567890"          // Invalid
        };

        // প্রতিটি ফোন নম্বরের জন্য চেক করা
        for (String phoneNumber : phoneNumbers) {
            if (phoneNumber.matches(regex)) {
                System.out.println(phoneNumber + " is a valid phone number.");
            } else {
                System.out.println(phoneNumber + " is an invalid phone number.");
            }
        }
    }
}

ব্যাখ্যা:

  • RegEx Pattern:
    • ^(\\+\\d{1,2}\\s?)?: এটি একটি অপশনাল দেশ কোডের জন্য যা + এবং 1-2 ডিজিট হতে পারে (যেমন +1 অথবা +44)।
    • \\(?\\d{3}\\)?: এটি একটি অপশনাল ব্র্যাকেট (যেমন ()), যা 3টি ডিজিট ধারণ করে।
    • [-\\s]?: একটি ঐচ্ছিক হাইফেন বা স্পেস যা দুইটি সংখ্যার মধ্যে থাকতে পারে।
    • \\d{3}: 3টি ডিজিট।
    • [-\\s]?: আবার একটি ঐচ্ছিক হাইফেন বা স্পেস।
    • \\d{4}$: শেষের 4টি ডিজিট।

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

+1 123-456-7890 is a valid phone number.
(123) 456-7890 is a valid phone number.
123 456 7890 is a valid phone number.
+44 123 456 7890 is a valid phone number.
123-456-789 is an invalid phone number.
(123 456 7890 is an invalid phone number.
1234 567890 is an invalid phone number.

RegEx Explanation:

  1. ^(\\+\\d{1,2}\\s?)?: এটি একটি অপশনাল দেশ কোডের জন্য ব্যবহৃত হয়। এটি + চিহ্নের পরে 1 থেকে 2 ডিজিট এবং একটি ঐচ্ছিক স্পেস চিহ্ন থাকতে পারে।
  2. \\(?\\d{3}\\)?: এটি ফোন নম্বরের প্রথম 3 ডিজিট যা বা () ব্র্যাকেট দ্বারা বেষ্টিত হতে পারে অথবা সরাসরি থাকতে পারে।
  3. [-\\s]?: এটি ঐচ্ছিক একটি স্পেস বা হাইফেন চিহ্ন, যা দুটি অংশের মধ্যে থাকতে পারে।
  4. \\d{3}: এটি পরবর্তী 3টি ডিজিট।
  5. [-\\s]?: আবার ঐচ্ছিক স্পেস বা হাইফেন চিহ্ন।
  6. \\d{4}$: এটি শেষের 4টি ডিজিট এবং এখানে আর কোনো ক্যারেক্টার থাকতে পারবে না।

এই উদাহরণটি দেখিয়েছে কিভাবে আপনি জাভাতে ফোন নাম্বার ভ্যালিডেশন করতে পারেন RegEx ব্যবহার করে। আপনি যদি বিভিন্ন ফোন নাম্বারের ফরম্যাট চেক করতে চান, তবে আপনাকে RegEx প্যাটার্ন সামঞ্জস্য করতে হবে।

Content added By

Pattern Matching Example: Text থেকে Specific Pattern Matching

129
129

Java-তে Pattern Matching হল একটি শক্তিশালী ফিচার যা আপনাকে টেক্সটের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে সহায়তা করে। এই ফিচারটি java.util.regex প্যাকেজের মাধ্যমে বাস্তবায়িত করা হয়। প্যাটার্ন মেচিং সাধারনত Pattern এবং Matcher ক্লাস দিয়ে সম্পাদিত হয়।

নিচে Pattern Matching এর একটি সাধারণ উদাহরণ দেওয়া হলো, যা টেক্সটের মধ্যে নির্দিষ্ট প্যাটার্ন যেমন ইমেইল ঠিকানা, ফোন নম্বর, বা কোনও বিশেষ শব্দ খুঁজে বের করবে।

১. Java Pattern Matching উদাহরণ - ইমেইল ঠিকানা খোঁজা

এই উদাহরণে আমরা একটি টেক্সট স্ট্রিংয়ের মধ্যে সঠিক ফরম্যাটে ইমেইল ঠিকানা খুঁজে বের করব।

import java.util.regex.*;

public class PatternMatchingExample {
    public static void main(String[] args) {
        // প্যাটার্ন তৈরির জন্য ইমেইল রেগুলার এক্সপ্রেশন
        String emailPattern = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
        
        // টেক্সট যেখানে আমরা প্যাটার্ন মেলাবো
        String text = "My email is john.doe@example.com, and my secondary email is jane.smith@anothermail.org.";
        
        // প্যাটার্ন কম্পাইল করা
        Pattern pattern = Pattern.compile(emailPattern);
        
        // Matcher তৈরি
        Matcher matcher = pattern.matcher(text);
        
        // প্যাটার্ন মেলে কি না চেক করা
        while (matcher.find()) {
            System.out.println("Found email: " + matcher.group());
        }
    }
}

ব্যাখ্যা:

  1. Pattern: রেগুলার এক্সপ্রেশন (regular expression) ব্যবহার করে একটি প্যাটার্ন তৈরি করা হয়, যা ইমেইল ঠিকানাকে ম্যাচ করবে।
  2. Matcher: matcher() মেথড ব্যবহার করে, আমরা টেক্সটের সাথে প্যাটার্নের মিল খুঁজে বের করি।
  3. matcher.find(): এটি প্যাটার্নের প্রথম মিল খুঁজে পায় এবং যদি কোনো মিল পাওয়া যায়, তবে তা রিটার্ন করে।
  4. matcher.group(): এটি যে অংশটি ম্যাচ হয়েছে তা ফেরত দেয়, অর্থাৎ ইমেইল ঠিকানাটি।

আউটপুট:

Found email: john.doe@example.com
Found email: jane.smith@anothermail.org

২. Java Pattern Matching উদাহরণ - ফোন নম্বর খোঁজা

এখন, আমরা ফোন নম্বরের প্যাটার্ন মেলানোর জন্য একটি উদাহরণ দেখবো।

import java.util.regex.*;

public class PhonePatternExample {
    public static void main(String[] args) {
        // প্যাটার্ন তৈরির জন্য ফোন নম্বর রেগুলার এক্সপ্রেশন (এটা ভারতীয় নম্বরের জন্য উদাহরণ)
        String phonePattern = "\\d{10}";
        
        // টেক্সট যেখানে আমরা প্যাটার্ন মেলাবো
        String text = "Contact me at 9876543210 or at 1234567890 for more information.";
        
        // প্যাটার্ন কম্পাইল করা
        Pattern pattern = Pattern.compile(phonePattern);
        
        // Matcher তৈরি
        Matcher matcher = pattern.matcher(text);
        
        // প্যাটার্ন মেলে কি না চেক করা
        while (matcher.find()) {
            System.out.println("Found phone number: " + matcher.group());
        }
    }
}

ব্যাখ্যা:

  1. phonePattern: এখানে একটি সাধারণ রেগুলার এক্সপ্রেশন ব্যবহার করা হয়েছে যা ঠিক ১০টি ডিজিটের ফোন নম্বর খুঁজে বের করবে।
  2. matcher.find(): এটি টেক্সটের মধ্যে মিল পাওয়া সমস্ত ফোন নম্বর খুঁজে বের করে।

আউটপুট:

Found phone number: 9876543210
Found phone number: 1234567890

৩. Java Pattern Matching উদাহরণ - শব্দের প্যাটার্ন খোঁজা

এই উদাহরণে আমরা একটি টেক্সট থেকে নির্দিষ্ট একটি শব্দের (যেমন "Java") উপস্থিতি খুঁজে বের করব।

import java.util.regex.*;

public class WordPatternExample {
    public static void main(String[] args) {
        // প্যাটার্ন তৈরির জন্য শব্দ রেগুলার এক্সপ্রেশন
        String wordPattern = "\\bJava\\b"; // \b মানে word boundary, যাতে পুরো শব্দটাই মেলে
        
        // টেক্সট যেখানে আমরা প্যাটার্ন মেলাবো
        String text = "I am learning Java. Java is a powerful programming language.";
        
        // প্যাটার্ন কম্পাইল করা
        Pattern pattern = Pattern.compile(wordPattern);
        
        // Matcher তৈরি
        Matcher matcher = pattern.matcher(text);
        
        // প্যাটার্ন মেলে কি না চেক করা
        while (matcher.find()) {
            System.out.println("Found the word 'Java': " + matcher.group());
        }
    }
}

ব্যাখ্যা:

  1. wordPattern: এটি একটি রেগুলার এক্সপ্রেশন যা "Java" শব্দটিকে খুঁজে বের করবে। \b ব্যবহার করা হয়েছে যাতে শব্দের সীমা চিহ্নিত হয়, এবং পুরো শব্দটি মেলে।
  2. matcher.find(): এটি টেক্সটের মধ্যে "Java" শব্দটির উপস্থিতি খুঁজে বের করবে।

আউটপুট:

Found the word 'Java': Java
Found the word 'Java': Java

৪. Java Pattern Matching উদাহরণ - তারিখের প্যাটার্ন খোঁজা

এখানে আমরা একটি তারিখের ফরম্যাট যেমন "dd-MM-yyyy" খুঁজে বের করার উদাহরণ দেখব।

import java.util.regex.*;

public class DatePatternExample {
    public static void main(String[] args) {
        // প্যাটার্ন তৈরির জন্য তারিখ রেগুলার এক্সপ্রেশন (dd-MM-yyyy)
        String datePattern = "\\b\\d{2}-\\d{2}-\\d{4}\\b";
        
        // টেক্সট যেখানে আমরা প্যাটার্ন মেলাবো
        String text = "Today's date is 23-12-2024, and tomorrow will be 24-12-2024.";
        
        // প্যাটার্ন কম্পাইল করা
        Pattern pattern = Pattern.compile(datePattern);
        
        // Matcher তৈরি
        Matcher matcher = pattern.matcher(text);
        
        // প্যাটার্ন মেলে কি না চেক করা
        while (matcher.find()) {
            System.out.println("Found date: " + matcher.group());
        }
    }
}

ব্যাখ্যা:

  1. datePattern: এটি একটি রেগুলার এক্সপ্রেশন যা "dd-MM-yyyy" ফরম্যাটের তারিখ খুঁজে বের করবে।
  2. matcher.find(): এটি টেক্সটের মধ্যে সঠিক ফরম্যাটের তারিখ খুঁজে বের করবে।

আউটপুট:

Found date: 23-12-2024
Found date: 24-12-2024

Java Pattern Matching প্রযুক্তি

Java-তে Pattern Matching একটি শক্তিশালী বৈশিষ্ট্য যা আপনাকে টেক্সটের মধ্যে বিভিন্ন ধরণের প্যাটার্ন খুঁজে বের করতে সহায়তা করে। এটি java.util.regex প্যাকেজের Pattern এবং Matcher ক্লাস ব্যবহার করে করা হয়। প্যাটার্নের মাধ্যমে আপনি নম্বর, তারিখ, শব্দ, ইমেইল ঠিকানা, ফোন নম্বর এবং আরও অনেক কিছু সহজেই খুঁজে বের করতে পারবেন।

  • Pattern: একটি রেগুলার এক্সপ্রেশন কম্পাইল করে, যা পরে মেচিং এর জন্য ব্যবহার করা হয়।
  • Matcher: একটি টেক্সট বা স্ট্রিং এর মধ্যে প্যাটার্ন মেলা পরীক্ষা করে এবং সেই মেলানো অংশগুলো বের করে।

এটি টেক্সট প্রক্রিয়াকরণ, ডেটা ভ্যালিডেশন, এবং অটোমেটেড টেস্টিং বা ডেটা ক্লিনিংয়ে অত্যন্ত কার্যকরী।

Content added By

Split এবং Replace Example: RegEx এর মাধ্যমে String Split এবং Replace

98
98

Java String Split এবং Replace অপারেশনগুলি RegEx (Regular Expressions) এর মাধ্যমে করা যায়। এটি খুবই শক্তিশালী এবং কার্যকরী একটি টুল, যা স্ট্রিংয়ে নির্দিষ্ট প্যাটার্ন অনুসারে অংশ বিভক্ত (split) বা প্রতিস্থাপন (replace) করতে সাহায্য করে। নিচে কিছু উদাহরণ দেখানো হল।

1. String Split Using Regular Expressions

split() মেথড ব্যবহার করে স্ট্রিংকে নির্দিষ্ট একটি প্যাটার্ন অনুসারে ভাগ করা যায়। এই প্যাটার্ন সাধারণত একটি রেগুলার এক্সপ্রেশন (RegEx) হিসেবে ব্যবহার হয়।

উদাহরণ: একটি স্ট্রিংকে স্পেস (space) দিয়ে ভাগ করা

public class SplitExample {
    public static void main(String[] args) {
        String str = "Java is a powerful language";

        // স্পেস দ্বারা স্ট্রিং ভাগ করা
        String[] words = str.split("\\s+");

        for (String word : words) {
            System.out.println(word);
        }
    }
}

আউটপুট:

Java
is
a
powerful
language

ব্যাখ্যা:
এখানে, "\\s+" একটি রেগুলার এক্সপ্রেশন যা একটি বা একাধিক স্পেসকে প্রতিনিধিত্ব করে। split() মেথড এই প্যাটার্ন অনুসারে স্ট্রিংটিকে ভাগ করেছে।

উদাহরণ: কমা (,) দিয়ে স্ট্রিং ভাগ করা

public class SplitExample {
    public static void main(String[] args) {
        String str = "Apple,Orange,Banana,Cherry";

        // কমা দ্বারা স্ট্রিং ভাগ করা
        String[] fruits = str.split(",");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

আউটপুট:

Apple
Orange
Banana
Cherry

ব্যাখ্যা:
এখানে, "split(",")" দ্বারা স্ট্রিংটিকে কমার মধ্যে ভাগ করা হয়েছে।

2. String Replace Using Regular Expressions

replaceAll() মেথডটি ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট প্যাটার্ন অনুসারে টেক্সট প্রতিস্থাপন করতে পারেন।

উদাহরণ: স্ট্রিংয়ে শব্দ প্রতিস্থাপন

public class ReplaceExample {
    public static void main(String[] args) {
        String str = "I love Java programming. Java is amazing.";

        // "Java" শব্দটি "Python" দিয়ে প্রতিস্থাপন করা
        String newStr = str.replaceAll("Java", "Python");

        System.out.println(newStr);
    }
}

আউটপুট:

I love Python programming. Python is amazing.

ব্যাখ্যা:
এখানে "replaceAll("Java", "Python")" মেথডটি স্ট্রিংয়ের সমস্ত "Java" শব্দকে "Python" দিয়ে প্রতিস্থাপন করেছে।

উদাহরণ: একটি স্ট্রিংয়ে একাধিক স্পেস মুছে ফেলা

public class ReplaceExample {
    public static void main(String[] args) {
        String str = "This  is   a  test  string.";

        // একাধিক স্পেসকে একক স্পেস দিয়ে প্রতিস্থাপন করা
        String newStr = str.replaceAll("\\s+", " ");

        System.out.println(newStr);
    }
}

আউটপুট:

This is a test string.

ব্যাখ্যা:
এখানে, "\\s+" একটি রেগুলার এক্সপ্রেশন যা এক বা একাধিক স্পেসকে প্রতিনিধিত্ব করে। replaceAll("\\s+", " ") মেথডটি সমস্ত অতিরিক্ত স্পেসগুলোকে একক স্পেস দিয়ে প্রতিস্থাপন করেছে।

উদাহরণ: স্ট্রিংয়ের একটি নির্দিষ্ট প্যাটার্ন প্রতিস্থাপন

public class ReplaceExample {
    public static void main(String[] args) {
        String str = "The price is 1000 dollars.";

        // সংখ্যা প্রতিস্থাপন করা
        String newStr = str.replaceAll("\\d+", "X");

        System.out.println(newStr);
    }
}

আউটপুট:

The price is X dollars.

ব্যাখ্যা:
এখানে, "\\d+" একটি রেগুলার এক্সপ্রেশন যা একটি বা একাধিক ডিজিটকে প্রতিনিধিত্ব করে। replaceAll("\\d+", "X") মেথডটি সমস্ত সংখ্যাকে "X" দিয়ে প্রতিস্থাপন করেছে।

3. Split and Replace Combined Example

আপনি একই স্ট্রিংয়ে split() এবং replaceAll() মেথডগুলো একসঙ্গে ব্যবহার করতে পারেন।

উদাহরণ: স্পেস দ্বারা স্ট্রিং বিভক্ত করে প্রতিটি অংশে একটি শব্দ প্রতিস্থাপন

public class SplitAndReplaceExample {
    public static void main(String[] args) {
        String str = "I am learning Java programming";

        // স্পেস দ্বারা স্ট্রিং বিভক্ত করা
        String[] words = str.split("\\s+");

        // প্রতিটি শব্দে "Java" প্রতিস্থাপন করা
        for (int i = 0; i < words.length; i++) {
            words[i] = words[i].replaceAll("Java", "Python");
        }

        // ফলাফল প্রিন্ট করা
        for (String word : words) {
            System.out.print(word + " ");
        }
    }
}

আউটপুট:

I am learning Python programming 

ব্যাখ্যা:
এখানে, স্ট্রিংকে প্রথমে স্পেস দিয়ে ভাগ করা হয়েছে এবং তারপর "Java" শব্দটি "Python" দিয়ে প্রতিস্থাপন করা হয়েছে।

সারাংশ:

  • split(): একটি স্ট্রিংকে একটি নির্দিষ্ট প্যাটার্ন অনুযায়ী ভাগ করে।
  • replaceAll(): একটি স্ট্রিংয়ের মধ্যে একটি প্যাটার্ন অনুসারে টেক্সট প্রতিস্থাপন করে।

এই উল্লিখিত উদাহরণগুলি আপনাকে Java-তে RegEx ব্যবহার করে স্ট্রিং ভেঙে ফেলা এবং প্রতিস্থাপন করার পদ্ধতিগুলি বুঝতে সাহায্য করবে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion