এডিটর

ইনপুট বা রেজেক্স এক্সিকিউশনের জন্য অপেক্ষা করছি...

ক্রিয়াকলাপ

?
?
?

সম্পর্কে অনলাইন রেজেক্স টেস্টার

কিছু টেক্সট পেস্ট করুন, একটি রেজেক্স প্যাটার্ন লিখুন, ফ্ল্যাগ টগল করুন এবং সাথে সাথে দেখুন কী ম্যাচ করে। এই রেজেক্স টেস্টার আধুনিক জাভাস্ক্রিপ্ট রানটাইমের মতো একই RegExp ইঞ্জিন ব্যবহার করে, তাই আপনি এখানে যা দেখবেন তা আপনার ফ্রন্টএন্ড কোড, Node.js স্ক্রিপ্ট, বা সার্ভার-সাইড ভ্যালিডেশনে পাবেন। নামযুক্ত ক্যাপচার গ্রুপ, লুকএরাউন্ড এবং ইউনিকোড মোড সমর্থিত যখন আপনার রানটাইম সেগুলি সমর্থন করে।

কেন এই রেগেক্স টেস্টার ব্যবহার করবেন

  • রিয়েল-টাইম ম্যাচিং যেখানে ঐচ্ছিক "লাইভ" মোডে টাইপ করার সাথে সাথে পুনরায় চালানো যায়
  • স্ট্রাকচার্ড ম্যাচ তালিকা যাতে শুরু সূচক, শেষ সূচক, মান এবং নামযুক্ত ক্যাপচার গ্রুপ রয়েছে
  • সম্পূর্ণ JavaScript/ECMAScript RegExp সিনট্যাক্স সমর্থন (আপনার JS রানটাইমের মতোই ইঞ্জিন)
  • ফ্ল্যাগ নিয়ন্ত্রণ: g, i, m, s, u, y – নিরাপদে একত্রিত করুন এবং পরীক্ষা করুন
  • মিলিসেকেন্ডে প্রতি-রান এক্সিকিউশন সময় সহ মৌলিক পারফরম্যান্স অন্তর্দৃষ্টি
  • টিকেট, ডকুমেন্ট বা কমিট মেসেজে দ্রুত কপি/পেস্ট করার জন্য শুধুমাত্র টেক্সট সামারি আউটপুট
  • শেখার জন্য চমৎকার: সম্পূর্ণ প্রকল্প বা টেস্ট স্যুট চালানো ছাড়াই প্যাটার্ন প্রোটোটাইপ করুন
  • দৈনন্দিন কাজের জন্য আদর্শ: লগ পার্সিং, ভ্যালিডেশন, URL / ID এক্সট্রাকশন, দ্রুত ডেটা ক্লিনিং
  • বড় টেক্সট ম্যাচ করার সময় UI ফ্রিজ এড়াতে ফলাফল তালিকা নরমভাবে ক্যাপ করা

🔧 কিভাবে রেগেক্স টেস্টার ব্যবহার করবেন for regex-tester

1

১. আপনার টেস্ট টেক্সট পেস্ট বা টাইপ করুন

আপনি যে টেক্সটটি অনুসন্ধান করতে চান তা যোগ করুন: লগ, স্নিপেট, CSV ফ্র্যাগমেন্ট, HTML, JSON, যেকোনো সাধারণ টেক্সট।

2

২. আপনার রেগেক্স প্যাটার্ন লিখুন

রেগুলার এক্সপ্রেশন **চারপাশের স্ল্যাশ ছাড়া** লিখুন। উদাহরণস্বরূপ: একটি মৌলিক ইমেইল-জাতীয় প্যাটার্নের জন্য <code>\b\w+@\w+\.\w+</code>, বা নামযুক্ত গ্রুপ সহ <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code>।

3

৩. ফ্ল্যাগ সেট করুন (g, i, m, s, u, y)

<code>g</code> (গ্লোবাল), <code>i</code> (কেস-ইনসেনসিটিভ) বা <code>m</code> (মাল্টিলাইন) এর মতো ফ্ল্যাগ টগল করুন। অভ্যন্তরীণভাবে, টেস্টার <code>new RegExp(pattern, flags)</code> তৈরি করে ঠিক যেমন JavaScript করে।

4

৪. ম্যাচ ও গ্রুপ পরিদর্শন করুন

প্রতিটি ম্যাচ তার সূচক, ঐচ্ছিক শেষ সূচক এবং ক্যাপচার গ্রুপ সহ পর্যালোচনা করুন। নামযুক্ত গ্রুপগুলি JSON-এর মতো ম্যাপ হিসাবে উপস্থিত হয় যাতে আপনি সেগুলি টেস্ট ফিক্সচার, পার্সার বা ডকুমেন্টেশনে কপি করতে পারেন।

5

৫. সামারি কপি করুন

দ্রুত রিপোর্ট হিসাবে টেক্সট সামারি ব্যবহার করুন: এটি সূচক এবং গ্রুপ সহ ম্যাচগুলি তালিকাভুক্ত করে, টিকেট, কোড রিভিউ কমেন্ট বা চিট শীটে পেস্ট করার জন্য প্রস্তুত।

রেগেক্স সিনট্যাক্স ও ইঞ্জিন বিবরণ

ক্যারেক্টার ক্লাস ও বেসিক

JavaScript RegExp ইঞ্জিন দ্বারা সমর্থিত মূল বিল্ডিং ব্লক।

প্যাটার্নঅর্থউদাহরণ
.লাইন ব্রেক ছাড়া যেকোনো ক্যারেক্টার (যদি না <code>s</code> ফ্ল্যাগ থাকে)<code>a.c</code> → ম্যাচ করে <code>abc</code>
\d, \w, \sসংখ্যা, শব্দ অক্ষর, সাদা স্থান<code>\d+</code> → <code>123</code>
\D, \W, \Sউপরেরগুলির নেগেটেড সংস্করণ<code>\S+</code> → নন-হোয়াইটস্পেস রান
[abc]অক্ষর সেট<code>[aeiou]</code> → একটি একক স্বরবর্ণ
[^abc]নেগেটেড সেট<code>[^0-9]</code> → নন-ডিজিট
^, $ইনপুটের শুরু এবং শেষ (বা <code>m</code> সহ লাইন)<code>^Hello</code>, <code>!$</code>

কোয়ান্টিফায়ার

পূর্ববর্তী টোকেনের পুনরাবৃত্তি, লোভী এবং অলস আচরণ সহ।

প্যাটার্নঅর্থউদাহরণ
?0 বা 1 বার<code>colou?r</code> → মেলে <code>color</code> এবং <code>colour</code>
*0 বা তার বেশি<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 বা তার বেশি<code>\d+</code> → <code>1</code>, <code>123</code>
{n}ঠিক n বার<code>a{3}</code> → <code>aaa</code>
{n,}কমপক্ষে n বার<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}n এবং m এর মধ্যে<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

গ্রুপ, লুকআরাউন্ড ও নামযুক্ত ক্যাপচার

আধুনিক জাভাস্ক্রিপ্ট ইঞ্জিন দ্বারা প্রদত্ত আরও উন্নত বৈশিষ্ট্য।

বৈশিষ্ট্যসিনট্যাক্সউদাহরণ
ক্যাপচারিং গ্রুপ(...)<code>(\d{3})-(\d{2})</code> → এলাকা + প্রত্যয়
নন-ক্যাপচারিং গ্রুপ(?:...)<code>(?:https?|ftp)://</code>
ব্যাকরেফারেন্স\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
লুকএহেড(?=...), (?!...)<code>\w+(?=! )</code> → <code>! </code> এর আগের শব্দ
লুকবিহাইন্ড*(?<=...), (?<!...)<code>(?<=#)\w+</code> → <code>#</code> এর পরের টেক্সট (*আধুনিক ইঞ্জিনে)
নেমড গ্রুপ(?<name>...)<code>(?<year>\d{4})</code> → ফলাফলে <code>groups.year</code>

ফ্ল্যাগ (অপশন)

টেস্টারের ফ্ল্যাগ সরাসরি জাভাস্ক্রিপ্ট RegExp ফ্ল্যাগের সাথে ম্যাপ করে।

ফ্ল্যাগনামপ্রভাব
gগ্লোবালশুধুমাত্র প্রথমটির পরিবর্তে সব ম্যাচ খুঁজে বের করুন
iকেস উপেক্ষা করুনকেস-ইনসেনসিটিভ ম্যাচিং
mমাল্টিলাইন<code>^</code> এবং <code>$</code> লাইন বাউন্ডারি মেলে
sডটঅল<code>.</code> লাইন ব্রেকও মেলে
uইউনিকোডআধুনিক ইঞ্জিনে ইউনিকোড মোড এবং প্রপার্টি এস্কেপ সক্ষম করে
yস্টিকিশুধুমাত্র বর্তমান ইনডেক্সে মিলানো হবে (<code>lastIndex</code> এর সাথে ব্যবহৃত)

পারফরম্যান্স ও নিরাপত্তা

অন্তর্নিহিত জাভাস্ক্রিপ্ট ইঞ্জিন রেজেক্স সিঙ্ক্রোনাসলি এক্সিকিউট করে। UI রেসপন্সিভ রাখতে, টেস্টার সংগ্রহ করা ম্যাচের সংখ্যা সীমিত করে (যেমন গ্লোবাল মোডে প্রথম ৫০০টি হিট)। এটি UI ফ্লাড করা এড়াতে সাহায্য করে, কিন্তু জটিল বা গুরুত্বপূর্ণ প্যাটার্নের জন্য সম্পূর্ণ পারফরম্যান্স অডিটের বিকল্প নয়।

কমান্ড লাইন রেজেক্স টুলস

আপনার প্যাটার্ন এখানে কাজ করলে, আপনি একই বা অনুরূপ রেজেক্স আপনার টার্মিনাল, স্ক্রিপ্ট বা CI জবগুলিতে পুনরায় ব্যবহার করতে পারেন:

লিনাক্স / macOS

grep দিয়ে সার্চ করুন (এক্সটেন্ডেড রেজেক্স)

grep -E 'pattern' file.txt

একটি প্রদত্ত প্যাটার্নের সাথে মিলানো লাইন খুঁজুন

sed দিয়ে সার্চ ও রিপ্লেস করুন

sed -E 's/pattern/replacement/g' input.txt > output.txt

টেক্সট ফাইলে ব্যাচ প্রতিস্থাপন

উইন্ডোজ / PowerShell

PowerShell রেজেক্স সার্চ

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

লগ ফাইলে US-স্টাইল SSN প্যাটার্ন খুঁজুন (উদাহরণ)

PowerShell রেজেক্স রিপ্লেস

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

সরল রেজেক্স-ভিত্তিক প্রতিস্থাপন

ব্যবহারিক রেজেক্স অ্যাপ্লিকেশন

ওয়েব ও ফ্রন্টএন্ড ডেভেলপমেন্ট

  • ফর্মে ইমেইল, ইউজারনেম, স্লাগ বা কাস্টম ID ভ্যালিডেট করুন
  • URL বা পাথ থেকে রাউট প্যারামিটার এক্সট্র্যাক্ট করুন
  • ক্লায়েন্ট-সাইড ভ্যালিডেশনের জন্য দ্রুত প্যাটার্ন প্রোটোটাইপ করুন
// বেসিক ইমেইল-লাইক ভ্যালিডেশন
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// রাউট প্যারামস: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

লগ, ডেটা ও ব্যাকএন্ড

  • লগ লাইন থেকে টাইমস্ট্যাম্প এবং লেভেল পার্স করুন
  • হোয়াইটস্পেস নরমালাইজ করুন এবং অগোছালো টেক্সট ক্লিন করুন
  • অস্ট্রাকচার্ড কনটেন্ট থেকে ID, ইমেইল বা রেফারেন্স এক্সট্র্যাক্ট করুন
// পুনরাবৃত্ত হোয়াইটস্পেস কোলাপ্স করুন
const normalized = text.replace(/\s+/g, ' ').trim();
// সরল লগ লাইন ম্যাচার
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

ডেটা ক্লিনিং ও দ্রুত স্ক্রিপ্ট

  • পার্স করার আগে অবাঞ্ছিত HTML ট্যাগ বা অ্যাট্রিবিউট সরান
  • একটি দীর্ঘ টেক্সট ব্লব থেকে সমস্ত URL, ইমেইল বা ID বের করুন
  • অন্য একটি সিস্টেমে ইম্পোর্ট করার জন্য ডেটাসেট ফিল্ড প্রস্তুত করুন

❓ Frequently Asked Questions

কেন আমার রেজেক্স কিছু ম্যাচ করছে না?

সাধারণ সমস্যাগুলো: ১) বিশেষ ক্যারেক্টার এস্কেপ করা হয়নি (যেমন ., ?, +), ২) একাধিক ম্যাচ আশা করলে g ফ্ল্যাগ ভুলে যাওয়া, ৩) অ্যাঙ্কর (^, $) বা ওয়ার্ড বাউন্ডারি (\b) না থাকা, ৪) আপনার জাভাস্ক্রিপ্ট ইঞ্জিন এখনও সমর্থন করে না এমন ফিচার ব্যবহার করা (যেমন কিছু লুকবিহাইন্ড)। প্যাটার্নটি সরল করুন এবং ধাপে ধাপে অংশ যোগ করুন।

⏱️এক্সিকিউশন টাইম (ms) বলতে কী বোঝায়?

প্রতিটি রান performance.now() ব্যবহার করে সময় নেওয়া হয়। এই মানটি বর্তমান ইনপুটে রেজেক্স এক্সিকিউট হতে কত সময় নিয়েছে তার একটি আনুমানিক পরিমাপ। এটি স্পষ্টত ব্যয়বহুল প্যাটার্ন চিহ্নিত করতে সহায়ক, কিন্তু এটি সম্পূর্ণ বেঞ্চমার্ক বা প্রোডাকশন পারফরম্যান্সের গ্যারান্টি নয়।

🔍প্রথম ম্যাচ এবং গ্লোবাল মোডের মধ্যে পার্থক্য কী?

g ফ্ল্যাগ ছাড়া, জাভাস্ক্রিপ্ট শুধুমাত্র **প্রথম** ম্যাচ রিটার্ন করে (যদি থাকে)। g সহ, টেস্টার **সমস্ত** ম্যাচ সংগ্রহ করতে input.matchAll() ব্যবহার করে (একটি নিরাপদ সর্বোচ্চ সীমা পর্যন্ত), ইনডেক্স এবং ক্যাপচার গ্রুপ সহ। যখনই আপনি একাধিক ঘটনা নিয়ে চিন্তা করেন তখন গ্লোবাল মোড ব্যবহার করুন।

🌍এটি ইউনিকোড এবং <code>\p{...}</code> এস্কেপ সমর্থন করে?

হ্যাঁ, যখন আপনার জাভাস্ক্রিপ্ট ইঞ্জিন এটি সমর্থন করে। ইউনিকোড মোডে যেতে u ফ্ল্যাগ সক্ষম করুন, যা আধুনিক ব্রাউজার এবং সাম্প্রতিক Node.js সংস্করণে \p{Letter} বা \p{Script=Greek} এর মতো জিনিস আনলক করে।

⚠️এটি ক্যাটাস্ট্রোফিক ব্যাকট্র্যাকিং শনাক্ত করতে পারে?

টেস্টার এক্সিকিউশন টাইমের মাধ্যমে ধীর প্যাটার্নের ইঙ্গিত দিতে পারে, কিন্তু এটি সম্পূর্ণরূপে ক্যাটাস্ট্রোফিক ব্যাকট্র্যাকিং প্রতিরোধ করতে পারে না: অন্তর্নিহিত ইঞ্জিন এখনও সিনক্রোনাসলি চলে। এই টুলটি একটি প্রাথমিক সতর্কতা ব্যবস্থা হিসাবে ব্যবহার করুন, তারপর আপনার নিজের কোডবেসে জটিল প্যাটার্নগুলি সাবধানে বেঞ্চমার্ক এবং পর্যালোচনা করুন।

Pro Tips

Best Practice

আপনার রেজেক্স ছোট ছোট অংশে তৈরি করুন। এমন কিছু সহজ দিয়ে শুরু করুন যা ম্যাচ করে, তারপর ধাপে ধাপে অ্যাঙ্কর, গ্রুপ এবং কোয়ান্টিফায়ার যোগ করুন।

Best Practice

যখনই সম্ভব নামযুক্ত ক্যাপচার গ্রুপ (<code>(?<name>...)</code>) ব্যবহার করুন। তারা আপনার ম্যাচগুলো স্ব-ডকুমেন্টেড করে এবং কোড রিভিউ করার সময় পড়া অনেক সহজ করে তোলে।

Best Practice

<code>.*</code> এবং নেস্টেড কোয়ান্টিফায়ার নিয়ে সতর্ক থাকুন। তারা বড় ইনপুটে ভারী ব্যাকট্র্যাকিং সৃষ্টি করতে পারে। প্যাটার্নগুলো আরও নির্দিষ্ট করুন বা <code>{n,m}</code> দিয়ে পুনরাবৃত্তি সীমিত করুন।

Best Practice

ডিবাগ করার সময়, সাময়িকভাবে <code>g</code> ফ্ল্যাগ সরান এবং মানসিক মডেল সরল করতে প্রথম ম্যাচে ফোকাস করুন।

Additional Resources

Other Tools