DevToys Web Pro iconDevToys Web Proব্লগ
আমাদের রেট দিন:
ব্রাউজার এক্সটেনশন ব্যবহার করে দেখুন:

রেগুলার এক্সপ্রেশন টেস্টার

কনফিগারেশন

প্যাটার্ন

টেস্ট স্ট্রিং

  • ম্যাচসমূহ

    ম্যাচ দেখতে একটি প্যাটার্ন লিখুন

    প্রতিস্থাপন

    রেফারেন্স

    ক্যারেক্টার ক্লাসসমূহ

    .নিউলাইন ছাড়া যেকোনো অক্ষর
    [abc]a, b বা c মেলান
    [^abc]a, b, c ছাড়া যেকোনো কিছু মেলান
    [a-z]অক্ষরের পরিসর (a থেকে z)
    \dঅঙ্ক (0-9)
    \Dঅ-অঙ্ক
    \wশব্দ অক্ষর [a-zA-Z0-9_]
    \Wঅ-শব্দ অক্ষর
    \sহোয়াইটস্পেস
    \Sঅ-হোয়াইটস্পেস

    অ্যাঙ্কর

    ^স্ট্রিং/লাইনের শুরু
    $স্ট্রিং/লাইনের শেষ
    \bশব্দ সীমানা
    \Bঅ-শব্দ সীমানা

    এস্কেপ করা অক্ষর

    \tট্যাব
    \nনিউলাইন
    \rক্যারেজ রিটার্ন
    \0নাল অক্ষর
    \xhhহেক্স অক্ষর (যেমন \xFF)
    \uhhhhইউনিকোড অক্ষর

    গ্রুপ ও রেফারেন্স

    (abc)ক্যাপচারিং গ্রুপ
    (?:abc)নন-ক্যাপচারিং গ্রুপ
    (?<name>abc)নামযুক্ত ক্যাপচারিং গ্রুপ
    \1গ্রুপ 1-এ ব্যাক-রেফারেন্স
    \k<name>নামযুক্ত গ্রুপে ব্যাক-রেফারেন্স

    লুকঅ্যারাউন্ড

    (?=abc)পজিটিভ লুকঅ্যাহেড
    (?!abc)নেগেটিভ লুকঅ্যাহেড
    (?<=abc)পজিটিভ লুকবিহাইন্ড
    (?<!abc)নেগেটিভ লুকবিহাইন্ড

    কোয়ান্টিফায়ার ও অল্টারনেশন

    a*0 বা তার বেশি (গ্রিডি)
    a+1 বা তার বেশি (গ্রিডি)
    a?0 বা 1 (ঐচ্ছিক)
    a{n}ঠিক n বার
    a{n,}n বা তার বেশি বার
    a{n,m}n থেকে m বার পর্যন্ত
    a*?0 বা তার বেশি (লেজি)
    a+?1 বা তার বেশি (লেজি)
    a|ba বা b মেলান

    প্রতিস্থাপন

    $1, $2ক্যাপচার করা গ্রুপের বিষয়বস্তু
    $&সম্পূর্ণ ম্যাচ
    $`ম্যাচের আগে
    $'ম্যাচের পরে
    $$লিটারাল $ অক্ষর
    প্রযুক্তিগত বিবরণ

    RegEx টেস্টার কীভাবে কাজ করে

    টুলটি কী করে

    রেজেক্স টেস্টার আপনাকে রিয়েল-টাইমে স্যাম্পল টেক্সটের বিরুদ্ধে রেগুলার এক্সপ্রেশন টেস্ট করতে দেয়। এটি রেজেক্স ডিবাগার এবং রেজেক্স ভ্যালিডেটর—দুইভাবেই কাজ করে, ডেভেলপারদের প্যাটার্ন ম্যাচিং এক্সপ্রেশন তৈরি, টেস্ট, এবং পরিমার্জন করতে সাহায্য করে। এই টেস্টারটি JavaScript RegExp ইঞ্জিন (ECMAScript) ব্যবহার করে, তাই সিনট্যাক্স PCRE, .NET, বা Java রেজেক্স ইঞ্জিন থেকে ভিন্ন হতে পারে। যখন আপনাকে রেজেক্স অনলাইনে টেস্ট করতে হয়, এই টুলটি সব ম্যাচ, ক্যাপচার গ্রুপ, এবং রিপ্লেসমেন্ট দেখায়। টুলটি JavaScript রেজেক্স সিনট্যাক্স সমর্থন করে, যার মধ্যে JavaScript রেজেক্স ফ্ল্যাগ (g, i, m, s, u): গ্লোবাল (g), কেস-ইনসেনসিটিভ (i), মাল্টিলাইন (m), ডটঅল (s), এবং ইউনিকোড (u)। এটি টেস্ট স্ট্রিং-এ ম্যাচগুলো হাইলাইট করে, ক্যাপচার গ্রুপ দেখায়, এবং ফাইন্ড-অ্যান্ড-রিপ্লেস অপারেশন চালিয়ে দেখাতে পারে যে একটি রেজেক্স টেক্সটকে কীভাবে রূপান্তর করবে।

    ডেভেলপারদের সাধারণ ব্যবহারক্ষেত্র

    ডেভেলপাররা ভ্যালিডেশন প্যাটার্ন তৈরি, লগ ফাইল পার্স, বা স্ট্রিং থেকে ডেটা এক্সট্র্যাক্ট করার সময় রেজেক্স টেস্টার ব্যবহার করেন। regexp প্যাটার্ন টেস্ট করলে এজ কেস শনাক্ত করা, জটিল এক্সপ্রেশন ডিবাগ করা, এবং ভিন্ন ফ্ল্যাগ ম্যাচিং আচরণে কী প্রভাব ফেলে তা বোঝা যায়। অনেক ডেভেলপার ইমেইল ঠিকানা, ফোন নম্বর, URL, বা অন্যান্য স্ট্রাকচার্ড ডেটা ফরম্যাট ভ্যালিডেট করতে রেজেক্স টেস্টার ব্যবহার করেন। ফর্ম ভ্যালিডেশন, লগ অ্যানালাইসিস, বা টেক্সট প্রসেসিং টাস্কে এই টুলটি মূল্যবান। রেজেক্স টেস্টার রেগুলার এক্সপ্রেশন শেখার সময়ও সাহায্য করে, কারণ এটি ম্যাচ ইটারেশন এবং গ্রুপ এক্সট্র্যাকশনের মাধ্যমে প্যাটার্ন কীভাবে টেক্সটের সাথে ম্যাচ করে তা দেখায়। মাল্টিলাইন টেক্সট বা বিশেষ অক্ষরসহ regexp টেস্ট করার সময়, টুলটি ডেভেলপারদের ঠিক কী ম্যাচ হচ্ছে এবং কেন হচ্ছে তা স্পষ্টভাবে দেখতে সাহায্য করে।

    ডেটা ফরম্যাট, টাইপ বা ভ্যারিয়েন্ট

    রেজেক্স টেস্টার JavaScript রেগুলার এক্সপ্রেশন সিনট্যাক্স হ্যান্ডল করে, যা Perl-স্টাইল রেজেক্সের উপর ভিত্তি করে, তবে অন্যান্য রেজেক্স ইঞ্জিন থেকে কিছু পার্থক্য আছে। টুলটি ডিজিটের জন্য \d, ওয়ার্ড ক্যারেক্টারের জন্য \w, এবং হোয়াইটস্পেসের জন্য \s এর মতো ক্যারেক্টার ক্লাস সমর্থন করে। এটি অ্যাঙ্কর ( ^, $), কোয়ান্টিফায়ার (*, +, ?), এবং অল্টারনেশন (|) হ্যান্ডল করে। মাল্টিলাইন ফ্ল্যাগ ^ এবং $ কীভাবে ম্যাচ করে তা প্রভাবিত করে, আর ডটঅল ফ্ল্যাগ . কে নিউলাইন ক্যারেক্টারের সাথে ম্যাচ করতে দেয়। মাল্টিলাইন টেক্সট প্রসেসিংয়ের জন্য রেজেক্স নিউ লাইন আচরণ বোঝা অত্যন্ত গুরুত্বপূর্ণ। উদাহরণস্বরূপ, ফোন নম্বর স্ট্রিংয়ের বিরুদ্ধে /\d-\d-\d/ এর মতো প্যাটার্ন টেস্ট করলে ঠিক কোন অংশগুলো ম্যাচ করছে তা দেখা যায়। রেজেক্স নিউ লাইন হ্যান্ডলিং ফ্ল্যাগের উপর নির্ভর করে: ^foo.*bar$ প্যাটার্নটি "foo\nbar" কে শুধু ডটঅল ফ্ল্যাগ (s) থাকলেই ম্যাচ করে, কারণ ডিফল্টভাবে . নিউলাইনের সাথে ম্যাচ করে না। রেজেক্স নিউ লাইন প্যাটার্ন নিয়ে কাজ করার সময়, লিটারাল নিউলাইন ম্যাচ করতে \n ব্যবহার করুন, অথবা Windows লাইন এন্ডিংয়ের জন্য \r\n

    সাধারণ ভুল ও এজ কেস

    একটি সাধারণ ভুল হলো ভুলে যাওয়া যে JavaScript রেজেক্স ডেলিমিটার হিসেবে কোট নয়, ফরওয়ার্ড স্ল্যাশ ব্যবহার করে। আরেকটি সমস্যা হলো গ্লোবাল ফ্ল্যাগ ম্যাচিংকে কীভাবে প্রভাবিত করে তা ভুল বোঝা: এটি ছাড়া শুধু প্রথম ম্যাচ ফেরত আসে, কিন্তু এটি থাকলে সব ম্যাচ পাওয়া যায়। রেজেক্স নিউ লাইন হ্যান্ডলিং জটিল হতে পারে: ডটঅল ফ্ল্যাগ ব্যবহার না করলে . ক্যারেক্টারটি ডিফল্টভাবে নিউলাইনের সাথে ম্যাচ করে না। [^...] দিয়ে ক্যারেক্টার ক্লাস নেগেশন বিভ্রান্তিকর হতে পারে, কারণ এটি ক্লাসে নেই এমন যেকোনো ক্যারেক্টারের সাথে ম্যাচ করে। গ্রিডি বনাম লেজি কোয়ান্টিফায়ার ( * বনাম *?) ভিন্নভাবে আচরণ করে এবং অপ্রত্যাশিত ফল দিতে পারে। লুকঅ্যাহেড ও লুকবিহাইন্ড অ্যাসারশন ( (?=...), (?&lt;=...)) শক্তিশালী হলেও ডিবাগ করা কঠিন হতে পারে। ডেভেলপারদের খালি স্ট্রিং, বিশেষ অক্ষর, এবং ইউনিকোড অক্ষরের মতো এজ কেসসহ বিভিন্ন ইনপুট দিয়ে রেজেক্স প্যাটার্ন টেস্ট করা উচিত।

    কোডের বদলে কখন এই টুল ব্যবহার করবেন

    দ্রুত প্যাটার্ন ডেভেলপমেন্ট, জটিল এক্সপ্রেশন ডিবাগ করা, বা রেগুলার এক্সপ্রেশন সিনট্যাক্স শেখার জন্য এই রেজেক্স টেস্টার ব্যবহার করুন। কোডে ইমপ্লিমেন্ট করার আগে রেজেক্স প্যাটার্ন টেস্ট করার জন্য এটি আদর্শ, বিশেষ করে অপরিচিত সিনট্যাক্স বা জটিল প্যাটার্নের সাথে কাজ করার সময়। ভিজ্যুয়াল ফিডব্যাক একটি প্যাটার্ন কেন নির্দিষ্ট টেক্সটের সাথে ম্যাচ করছে বা করছে না তা শনাক্ত করতে সাহায্য করে। প্রোডাকশন কোডের জন্য, IDE বা ইউনিট টেস্টিং ফ্রেমওয়ার্কে ইন্টিগ্রেট করা রেজেক্স টেস্টার ব্যবহার করুন, যা আপনার টেস্ট স্যুটের অংশ হিসেবে প্যাটার্ন ভ্যালিডেট করতে পারে। ব্রাউজার টুল ইন্টার‌্যাক্টিভ ডেভেলপমেন্ট ও শেখায় ভালো, আর কোড-ভিত্তিক সমাধান অটোমেশন, CI/CD পাইপলাইনের সাথে ইন্টিগ্রেশন, এবং বড় ডেটাসেটের বিরুদ্ধে প্যাটার্ন টেস্ট করার সক্ষমতা দেয়। জটিল অ্যাপ্লিকেশনের জন্য, স্বয়ংক্রিয় রেজেক্স টেস্টিং নিশ্চিত করে যে প্যাটার্নগুলো বিভিন্ন ইনপুট ও এজ কেসে সঠিকভাবে কাজ করছে।