এডিটর
ইনপুট বা রেজেক্স এক্সিকিউশনের জন্য অপেক্ষা করছি...
ক্রিয়াকলাপ
কেন এই রেগেক্স টেস্টার ব্যবহার করবেন
- রিয়েল-টাইম ম্যাচিং যেখানে ঐচ্ছিক "লাইভ" মোডে টাইপ করার সাথে সাথে পুনরায় চালানো যায়
- স্ট্রাকচার্ড ম্যাচ তালিকা যাতে শুরু সূচক, শেষ সূচক, মান এবং নামযুক্ত ক্যাপচার গ্রুপ রয়েছে
- সম্পূর্ণ JavaScript/ECMAScript RegExp সিনট্যাক্স সমর্থন (আপনার JS রানটাইমের মতোই ইঞ্জিন)
- ফ্ল্যাগ নিয়ন্ত্রণ: g, i, m, s, u, y – নিরাপদে একত্রিত করুন এবং পরীক্ষা করুন
- মিলিসেকেন্ডে প্রতি-রান এক্সিকিউশন সময় সহ মৌলিক পারফরম্যান্স অন্তর্দৃষ্টি
- টিকেট, ডকুমেন্ট বা কমিট মেসেজে দ্রুত কপি/পেস্ট করার জন্য শুধুমাত্র টেক্সট সামারি আউটপুট
- শেখার জন্য চমৎকার: সম্পূর্ণ প্রকল্প বা টেস্ট স্যুট চালানো ছাড়াই প্যাটার্ন প্রোটোটাইপ করুন
- দৈনন্দিন কাজের জন্য আদর্শ: লগ পার্সিং, ভ্যালিডেশন, URL / ID এক্সট্রাকশন, দ্রুত ডেটা ক্লিনিং
- বড় টেক্সট ম্যাচ করার সময় UI ফ্রিজ এড়াতে ফলাফল তালিকা নরমভাবে ক্যাপ করা
🔧 কিভাবে রেগেক্স টেস্টার ব্যবহার করবেন for regex-tester
১. আপনার টেস্ট টেক্সট পেস্ট বা টাইপ করুন
আপনি যে টেক্সটটি অনুসন্ধান করতে চান তা যোগ করুন: লগ, স্নিপেট, CSV ফ্র্যাগমেন্ট, HTML, JSON, যেকোনো সাধারণ টেক্সট।
২. আপনার রেগেক্স প্যাটার্ন লিখুন
রেগুলার এক্সপ্রেশন **চারপাশের স্ল্যাশ ছাড়া** লিখুন। উদাহরণস্বরূপ: একটি মৌলিক ইমেইল-জাতীয় প্যাটার্নের জন্য <code>\b\w+@\w+\.\w+</code>, বা নামযুক্ত গ্রুপ সহ <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code>।
৩. ফ্ল্যাগ সেট করুন (g, i, m, s, u, y)
<code>g</code> (গ্লোবাল), <code>i</code> (কেস-ইনসেনসিটিভ) বা <code>m</code> (মাল্টিলাইন) এর মতো ফ্ল্যাগ টগল করুন। অভ্যন্তরীণভাবে, টেস্টার <code>new RegExp(pattern, flags)</code> তৈরি করে ঠিক যেমন JavaScript করে।
৪. ম্যাচ ও গ্রুপ পরিদর্শন করুন
প্রতিটি ম্যাচ তার সূচক, ঐচ্ছিক শেষ সূচক এবং ক্যাপচার গ্রুপ সহ পর্যালোচনা করুন। নামযুক্ত গ্রুপগুলি JSON-এর মতো ম্যাপ হিসাবে উপস্থিত হয় যাতে আপনি সেগুলি টেস্ট ফিক্সচার, পার্সার বা ডকুমেন্টেশনে কপি করতে পারেন।
৫. সামারি কপি করুন
দ্রুত রিপোর্ট হিসাবে টেক্সট সামারি ব্যবহার করুন: এটি সূচক এবং গ্রুপ সহ ম্যাচগুলি তালিকাভুক্ত করে, টিকেট, কোড রিভিউ কমেন্ট বা চিট শীটে পেস্ট করার জন্য প্রস্তুত।
রেগেক্স সিনট্যাক্স ও ইঞ্জিন বিবরণ
ক্যারেক্টার ক্লাস ও বেসিক
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
আপনার রেজেক্স ছোট ছোট অংশে তৈরি করুন। এমন কিছু সহজ দিয়ে শুরু করুন যা ম্যাচ করে, তারপর ধাপে ধাপে অ্যাঙ্কর, গ্রুপ এবং কোয়ান্টিফায়ার যোগ করুন।
যখনই সম্ভব নামযুক্ত ক্যাপচার গ্রুপ (<code>(?<name>...)</code>) ব্যবহার করুন। তারা আপনার ম্যাচগুলো স্ব-ডকুমেন্টেড করে এবং কোড রিভিউ করার সময় পড়া অনেক সহজ করে তোলে।
<code>.*</code> এবং নেস্টেড কোয়ান্টিফায়ার নিয়ে সতর্ক থাকুন। তারা বড় ইনপুটে ভারী ব্যাকট্র্যাকিং সৃষ্টি করতে পারে। প্যাটার্নগুলো আরও নির্দিষ্ট করুন বা <code>{n,m}</code> দিয়ে পুনরাবৃত্তি সীমিত করুন।
ডিবাগ করার সময়, সাময়িকভাবে <code>g</code> ফ্ল্যাগ সরান এবং মানসিক মডেল সরল করতে প্রথম ম্যাচে ফোকাস করুন।
Additional Resources
Other Tools
- সিএসএস সৌন্দর্যবর্ধক
- এইচটিএমএল সৌন্দর্যবর্ধক
- জাভাস্ক্রিপ্ট সৌন্দর্যবর্ধক
- পিএইচপি সৌন্দর্যবর্ধক
- রং নির্বাচক
- স্প্রাইট এক্সট্র্যাক্টর
- বেস৬৪ ডিকোডার
- বেস৬৪ এনকোডার
- সি-শার্প ফরম্যাটার
- সিএসভি ফরম্যাটার
- Dockerfile Formatter
- এলম ফরম্যাটার
- ইএনভি ফরম্যাটার
- গো ফরম্যাটার
- গ্রাফকিউএল ফরম্যাটার
- এইচসিএল ফরম্যাটার
- আইএনআই ফরম্যাটার
- জেসন ফরম্যাটার
- ল্যাটেক ফরম্যাটার
- মার্কডাউন ফরম্যাটার
- অবজেক্টিভসি ফরম্যাটার
- Php Formatter
- প্রোটো ফরম্যাটার
- পাইথন ফরম্যাটার
- রুবি ফরম্যাটার
- রাস্ট ফরম্যাটার
- স্কালা ফরম্যাটার
- শেল স্ক্রিপ্ট ফরম্যাটার
- এসকিউএল ফরম্যাটার
- SVG ফরম্যাটার
- Swift ফরম্যাটার
- TOML ফরম্যাটার
- Typescript Formatter
- XML ফরম্যাটার
- YAML ফরম্যাটার
- Yarn ফরম্যাটার
- সিএসএস মিনিফায়ার
- Html Minifier
- Javascript Minifier
- জেসন মিনিফায়ার
- XML মিনিফায়ার
- এইচটিটিপি হেডার ভিউয়ার
- পিডিএফ থেকে টেক্সট
- সার্প র্যাংক চেকার
- Whois লুকআপ