রেগুলার এক্সপ্রেশন (রেজেক্স) হলো টেক্সট খুঁজে বের করা, ম্যাচ করা এবং এক্সট্র্যাক্ট করার শক্তিশালী প্যাটার্ন। এগুলো প্রোগ্রামিং, ডেটা ভ্যালিডেশন, সার্চ-অ্যান্ড-রিপ্লেস অপারেশন এবং লগ বিশ্লেষণে ব্যবহৃত হয়। চ্যালেঞ্জ হলো রেজেক্স সিনট্যাক্স সঠিকভাবে লেখা কঠিন হতে পারে। আমাদের বিনামূল্যের রেজেক্স টেস্টার দিয়ে আপনি রিয়েল টাইমে পরীক্ষা করতে পারেন এবং আপনার প্যাটার্ন ঠিক কী ম্যাচ করে তা দেখতে পারেন।
আপনার যা প্রয়োজন
- একটি প্যাটার্ন যা আপনি পরীক্ষা করতে চান, অথবা সমাধান করতে চান এমন একটি টেক্সট-ম্যাচিং সমস্যা
- একটি ওয়েব ব্রাউজার (Chrome, Firefox, Safari, অথবা Edge)
- কোনো অ্যাকাউন্ট বা ইনস্টলেশনের প্রয়োজন নেই
ধাপে ধাপে নির্দেশিকা
রেজেক্স টেস্টার খুলুন
রেজেক্স টেস্টার টুলে যান। আপনি দুটি প্রধান এরিয়া দেখবেন: একটি আপনার রেগুলার এক্সপ্রেশন প্যাটার্নের জন্য এবং একটি পরীক্ষার টেক্সটের জন্য যেটির সাথে ম্যাচ করতে চান।
আপনার রেজেক্স প্যাটার্ন লিখুন
প্যাটার্ন ফিল্ডে একটি রেগুলার এক্সপ্রেশন লিখুন। সহজ থেকে শুরু করুন এবং ধীরে ধীরে জটিলতা বাড়ান। উদাহরণস্বরূপ, সেই সঠিক টেক্সট ম্যাচ করতে hello এর মতো একটি আক্ষরিক শব্দ দিয়ে শুরু করুন, তারপর বিশেষ অক্ষর দিয়ে আপনার প্যাটার্ন পরিমার্জন করে বৃহত্তর প্যাটার্ন ম্যাচ করুন।
পরীক্ষার টেক্সট দিন
পরীক্ষার এরিয়ায় নমুনা টেক্সট পেস্ট বা টাইপ করুন। ম্যাচ হওয়া এবং না হওয়া উভয় উদাহরণ অন্তর্ভুক্ত করুন। টুলটি আপনি টাইপ করার সাথে সাথে রিয়েল টাইমে সমস্ত ম্যাচ হাইলাইট করে, তাই আপনি তৎক্ষণাৎ দেখতে পারেন আপনার প্যাটার্ন সঠিকভাবে কাজ করছে কিনা।
পরিমার্জন এবং যাচাই করুন
আপনার প্যাটার্ন সমন্বয় করুন এবং ম্যাচ তাৎক্ষণিকভাবে আপডেট হতে দেখুন। আপনার পরীক্ষার টেক্সটে এজ কেস যোগ করুন — অস্বাভাবিক ইনপুট, সীমানা শর্ত এবং কঠিন ফরম্যাট — নিশ্চিত করতে আপনার রেজেক্স সেগুলো সঠিকভাবে পরিচালনা করে। সন্তুষ্ট হলে আপনার কোড বা টুলে প্যাটার্ন কপি করুন।
জেনে রাখুন রেজেক্স টেস্টার সম্পূর্ণ আপনার ব্রাউজারে চলে। কোনো ডেটা কোনো সার্ভারে পাঠানো হয় না, তাই আপনি নিরাপদে ইমেইল ঠিকানা, লগ ফাইল বা ব্যক্তিগত ডেটার মতো সংবেদনশীল টেক্সটের বিরুদ্ধে প্যাটার্ন পরীক্ষা করতে পারেন।
অপরিহার্য রেজেক্স সিনট্যাক্স
| প্রতীক | অর্থ | উদাহরণ |
|---|---|---|
. |
যেকোনো একটি অক্ষর | h.t ম্যাচ করে "hat", "hit", "hot" |
* |
আগেরটির শূন্য বা তার বেশি | ab*c ম্যাচ করে "ac", "abc", "abbc" |
+ |
আগেরটির এক বা তার বেশি | ab+c ম্যাচ করে "abc", "abbc" কিন্তু "ac" নয় |
? |
আগেরটির শূন্য বা এক | colou?r ম্যাচ করে "color" এবং "colour" |
\d |
যেকোনো ডিজিট (0-9) | \d{3} ম্যাচ করে "123", "456" |
\w |
যেকোনো শব্দ অক্ষর | \w+ ম্যাচ করে "hello", "test123" |
\s |
যেকোনো হোয়াইটস্পেস | hello\sworld ম্যাচ করে "hello world" |
^ |
স্ট্রিংয়ের শুরু | ^Hello ম্যাচ করে "Hello world" |
$ |
স্ট্রিংয়ের শেষ | world$ ম্যাচ করে "Hello world" |
[abc] |
সেটের যেকোনো অক্ষর | [aeiou] ম্যাচ করে যেকোনো স্বরবর্ণ |
(...) |
ক্যাপচার গ্রুপ | (ab)+ ম্যাচ করে "ab", "abab" |
পরীক্ষা করতে পারেন এমন সাধারণ প্যাটার্ন
এই প্যাটার্নগুলো রেজেক্স টেস্টার-এ কপি করুন এবং পরীক্ষা করুন।
ইমেইল ঠিকানা
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
user@example.com এবং first.last@company.co.uk এর মতো স্ট্যান্ডার্ড ইমেইল ফরম্যাট ম্যাচ করে। কিভাবে এজ কেস পরিচালনা করে তা দেখতে বৈধ এবং অবৈধ ইমেইল ফরম্যাট দিয়ে পরীক্ষা করুন।
URL
https?://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/[^\s]*)?
HTTP এবং HTTPS URL ম্যাচ করে যেমন https://example.com এবং http://site.org/path/page। s? "https"-এর "s" কে ঐচ্ছিক করে।
ফোন নম্বর (US ফরম্যাট)
(\+1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
বিভিন্ন US ফোন ফরম্যাট ম্যাচ করে: (555) 123-4567, 555-123-4567, +1 555.123.4567 এবং অনুরূপ বৈচিত্র।
পরামর্শ রেজেক্স তৈরি করার সময়, আপনার লক্ষ্য টেক্সট ম্যাচ করে এমন সহজতম প্যাটার্ন দিয়ে শুরু করুন এবং তারপর একবারে একটি করে সীমাবদ্ধতা যোগ করুন। রিয়েল টাইমে ম্যাচ আপডেট দেখার সময় ক্রমশ তৈরি করার চেয়ে একবারে জটিল রেজেক্স লেখা অনেক কঠিন।
সাধারণ ভুল এবং কিভাবে এড়াবেন
বিশেষ অক্ষর এস্কেপ করতে ভুলে যাওয়া। ., *, +, ?, (, ), [, ], {, } এর মতো অক্ষরের রেজেক্সে বিশেষ অর্থ আছে। এগুলো আক্ষরিকভাবে ম্যাচ করতে এদের আগে ব্যাকস্ল্যাশ দিন: \. একটি পিরিয়ড ম্যাচ করে, \( একটি বন্ধনী ম্যাচ করে।
খুব বেশি গ্রিডি হওয়া। ডিফল্টরূপে, * এবং + যতটা সম্ভব বেশি টেক্সট ম্যাচ করে। আপনি সবচেয়ে ছোট ম্যাচ চাইলে এদের পরে ? যোগ করুন: .*? যতটা সম্ভব কম ম্যাচ করে।
প্যাটার্ন অ্যাঙ্কর না করা। ^ এবং $ ছাড়া, \d{3} এর মতো প্যাটার্ন দীর্ঘ সংখ্যার ভেতর সহ স্ট্রিংয়ের যেকোনো জায়গায় তিনটি পরপর ডিজিট ম্যাচ করবে। পুরো স্ট্রিং ম্যাচ করতে হলে অ্যাঙ্কর ব্যবহার করুন।
গুরুত্বপূর্ণ রেজেক্স সিনট্যাক্স প্রোগ্রামিং ভাষা এবং টুলের মধ্যে সামান্য ভিন্ন হয়। JavaScript-এ কাজ করা একটি প্যাটার্ন Python বা PHP-তে ভিন্নভাবে আচরণ করতে পারে। আপনার চূড়ান্ত প্যাটার্ন সবসময় সেই ভাষা বা পরিবেশে পরীক্ষা করুন যেখানে ব্যবহার করবেন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
রেজেক্স ফ্ল্যাগ কী?
ফ্ল্যাগ প্যাটার্ন কিভাবে প্রয়োগ হয় তা পরিবর্তন করে। সাধারণ ফ্ল্যাগের মধ্যে রয়েছে g (গ্লোবাল — শুধু প্রথমটি নয়, সমস্ত ম্যাচ খুঁজুন), i (কেস-ইনসেনসিটিভ) এবং m (মাল্টিলাইন — ^ এবং $ স্ট্রিং সীমানা নয়, লাইন সীমানায় ম্যাচ করে)। রেজেক্স টেস্টার আপনাকে এই ফ্ল্যাগগুলো টগল করতে দেয়।
আমি কি সার্চ অ্যান্ড রিপ্লেসে রেজেক্স ব্যবহার করতে পারি?
হ্যাঁ। বেশিরভাগ টেক্সট এডিটর এবং প্রোগ্রামিং ভাষা রেজেক্স-ভিত্তিক ফাইন্ড অ্যান্ড রিপ্লেস সমর্থন করে। ক্যাপচার গ্রুপ (...) আপনাকে রিপ্লেসমেন্ট স্ট্রিংয়ে ম্যাচ করা টেক্সট রেফারেন্স করতে দেয়।
আমি কিভাবে একাধিক লাইন জুড়ে ম্যাচ করব?
. কে নিউলাইন অক্ষর ম্যাচ করাতে s (dotall) ফ্ল্যাগ ব্যবহার করুন, অথবা নিউলাইন সহ যেকোনো অক্ষর ম্যাচ করে এমন ক্রস-প্ল্যাটফর্ম বিকল্প হিসেবে [\s\S] ব্যবহার করুন।
পরবর্তী ধাপ
এখন যেহেতু আপনি রেজেক্স প্যাটার্ন তৈরি এবং পরীক্ষা করতে পারেন, আপনার কোড, টেক্সট এডিটর বা কমান্ড-লাইন টুলে সেগুলো ব্যবহার করে দেখুন। অন্যান্য ডেভেলপার ইউটিলিটির জন্য, সময়সূচী এক্সপ্রেশনের জন্য ক্রন পার্সার অথবা স্ট্রাকচার্ড ডেটার সাথে কাজ করতে JSON ফরম্যাটার দেখুন।