Regular Expressions এর মৌলিক ধারণা

Regular Expressions (রেগুলার এক্সপ্রেশন) - সি++ স্ট্যান্ডার্ড লাইব্রেরি (C++ Standard Library) - Computer Programming

336

Regular Expressions বা Regex হলো একটি শক্তিশালী টুল, যা একটি নির্দিষ্ট প্যাটার্ন অনুসারে টেক্সট ম্যানিপুলেশন, যেমন খোঁজা, মিলান এবং প্রতিস্থাপন করার কাজ করে। C++ তে regex হেডার ফাইল ব্যবহার করে রেগুলার এক্সপ্রেশন প্রয়োগ করা হয়। রেগুলার এক্সপ্রেশন সাধারণত স্ট্রিং বা টেক্সট ডেটা প্রক্রিয়াকরণে ব্যবহৃত হয় এবং এটি অনেক বেশি কার্যকর যখন টেক্সট থেকে নির্দিষ্ট প্যাটার্ন বের করতে হয়।


Regular Expressions এর মৌলিক ধারণা

রেগুলার এক্সপ্রেশন হলো এমন একটি প্যাটার্ন, যা একটি স্ট্রিং বা টেক্সট থেকে নির্দিষ্ট ফরম্যাট বা প্যাটার্নের টেক্সট খুঁজে বের করতে পারে। এই প্যাটার্নটি বিভিন্ন ধরনের প্রতীক, অক্ষর এবং কন্ট্রোল কাঠামো নিয়ে তৈরি হয়। C++ তে regex হেডারটি std::regex ক্লাস সরবরাহ করে, যা বিভিন্ন ধরণের প্যাটার্নের উপর ভিত্তি করে কাজ করতে পারে।


রেগুলার এক্সপ্রেশন ব্যবহার করার প্রধান কারণসমূহ

  • প্যাটার্ন অনুসারে টেক্সট খোঁজা: নির্দিষ্ট প্যাটার্নের টেক্সট খুঁজে বের করার জন্য রেগুলার এক্সপ্রেশন খুবই কার্যকর।
  • স্ট্রিং ভ্যালিডেশন: ই-মেইল, ফোন নম্বর, পাসওয়ার্ড ইত্যাদি যাচাই করতে।
  • টেক্সট প্রক্রিয়াকরণ: টেক্সট বা ডেটাতে পরিবর্তন করা, প্রতিস্থাপন বা ফরম্যাটিং করতে।
  • ডেটা বিশ্লেষণ: বড় টেক্সট বা লগ ফাইল থেকে নির্দিষ্ট তথ্য বের করতে।

C++ এ রেগুলার এক্সপ্রেশন ব্যবহারের উপায়

C++ তে regex হেডারের মাধ্যমে রেগুলার এক্সপ্রেশন প্রয়োগ করা হয়। প্রধান ক্লাস এবং ফাংশনগুলো হলো:

  • std::regex: রেগুলার এক্সপ্রেশন তৈরি করার জন্য ব্যবহৃত হয়।
  • std::regex_match: পুরো স্ট্রিং প্যাটার্নের সাথে মেলে কিনা তা পরীক্ষা করে।
  • std::regex_search: স্ট্রিংয়ের মধ্যে প্যাটার্নের উপস্থিতি খোঁজে।
  • std::regex_replace: একটি নির্দিষ্ট প্যাটার্নকে নতুন স্ট্রিং দিয়ে প্রতিস্থাপন করে।

উদাহরণ

#include <iostream>
#include <regex>
#include <string>

int main() {
    std::string text = "My email is example@example.com";
    std::regex email_pattern(R"(\w+@\w+\.\w+)");
    
    if (std::regex_search(text, email_pattern)) {
        std::cout << "Valid email found!" << std::endl;
    } else {
        std::cout << "No email found." << std::endl;
    }

    return 0;
}

আউটপুট:

Valid email found!

রেগুলার এক্সপ্রেশন এর কিছু গুরুত্বপূর্ণ প্রতীক

প্রতীকঅর্থউদাহরণ
.যেকোনো একটি অক্ষরকে নির্দেশ করেa.b -> aab, acb (কোনো একটি অক্ষর)
*পূর্ববর্তী অক্ষর শূন্য বা একাধিকবার থাকতে পারেab*c -> ac, abc, abbbc
+পূর্ববর্তী অক্ষর অন্তত একবার থাকতে হবেab+c -> abc, abbc
?পূর্ববর্তী অক্ষর শূন্য বা একবার থাকতে পারেab?c -> ac, abc
^স্ট্রিংয়ের শুরু নির্দেশ করে^Hello -> Hello World
$স্ট্রিংয়ের শেষ নির্দেশ করেworld$ -> Hello world
[]নির্দিষ্ট অক্ষরের সেট নির্দেশ করে[a-z] -> সব ছোট হাতের অক্ষর
``অথবা নির্দেশ করে
\dযেকোনো ডিজিট নির্দেশ করে\d{3} -> তিন সংখ্যার ডিজিট
\wযেকোনো অক্ষর বা ডিজিট নির্দেশ করে\w+ -> এক বা একাধিক শব্দ

কিছু সাধারণ রেগুলার এক্সপ্রেশন প্যাটার্ন

  1. ই-মেইল যাচাইকরণ:

    \w+@\w+\.\w+

    এই প্যাটার্নটি ই-মেইল যাচাই করতে ব্যবহৃত হয়।

  2. ফোন নম্বর যাচাইকরণ (১০ ডিজিট):

    \d{10}
  3. URL যাচাইকরণ:

    (http|https)://(\w+)(\.\w+)+
  4. শুধুমাত্র সংখ্যা:

    ^\d+$
  5. শুধুমাত্র অক্ষর:

    ^[a-zA-Z]+$

C++ তে রেগুলার এক্সপ্রেশন এর ব্যবহারিক উদাহরণ

উদাহরণ ১: স্ট্রিং ম্যাচিং

#include <iostream>
#include <regex>

int main() {
    std::string word = "hello";
    std::regex pattern("h.llo");

    if (std::regex_match(word, pattern)) {
        std::cout << "Pattern matched!" << std::endl;
    } else {
        std::cout << "Pattern did not match." << std::endl;
    }

    return 0;
}

উদাহরণ ২: স্ট্রিং প্রতিস্থাপন

#include <iostream>
#include <regex>
#include <string>

int main() {
    std::string text = "Hello World!";
    std::regex pattern("World");

    std::string result = std::regex_replace(text, pattern, "Regex");
    std::cout << result << std::endl; // আউটপুট: Hello Regex!

    return 0;
}

উপসংহার

রেগুলার এক্সপ্রেশন C++ এ টেক্সট ম্যানিপুলেশনের জন্য একটি শক্তিশালী টুল। এটি নির্দিষ্ট প্যাটার্নের ভিত্তিতে টেক্সট খুঁজে বের করা, মিলানো এবং প্রতিস্থাপন করার জন্য কার্যকর। C++ এ regex হেডারের মাধ্যমে এটি সহজেই ব্যবহার করা যায়, যা বড় বড় টেক্সট ফাইল বা ডেটা থেকে নির্দিষ্ট তথ্য বিশ্লেষণে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...