মূল কনটেন্টে যান
QuickUtils

Regex টেস্টার

একটা রেগুলার এক্সপ্রেশন (regex) আর কিছু লেখা টাইপ করুন, টাইপ করতে করতেই প্রতিটি ম্যাচ আর ক্যাপচার গ্রুপ হাইলাইট হবে, অথবা রিপ্লেস করে দেখুন। যে প্যাটার্ন পেজ আটকে দিত, সেটা থামিয়ে দেওয়া হয়।

মোড
JavaScript সিনট্যাক্স, আপনার ব্রাউজারের RegExp যেভাবে পড়ে। স্ল্যাশ ছাড়া টাইপ করুন।
ফ্ল্যাগ

একটা উদাহরণ দেখুন

ম্যাচ

কী কী ম্যাচ করে দেখতে একটা প্যাটার্ন টাইপ করুন।

সংক্ষিপ্ত রেফারেন্স

\d
একটা অঙ্ক, 0 থেকে 9
\w
একটা অক্ষর, অঙ্ক বা আন্ডারস্কোর (শুধু ইংরেজি অক্ষর)
\s
একটা স্পেস, ট্যাব বা লাইন ব্রেক
.
লাইন ব্রেক ছাড়া যেকোনো অক্ষর (s থাকলে, যেকোনো অক্ষরই)
^
লেখার শুরু (m থাকলে, প্রতিটি লাইনের শুরু)
$
লেখার শেষ (m থাকলে, প্রতিটি লাইনের শেষ)
\b
শব্দের কিনারা
*
আগের জিনিসটা যতবার খুশি, একবারও না থাকলেও চলে
+
আগের জিনিসটা একবার বা তার বেশি
?
আগের জিনিসটা, অথবা কিছুই না; * বা +-এর পরে বসলে, যত কম সম্ভব
{n,m}
আগের জিনিসটা n থেকে m বার
[abc]
a, b বা c-এর যেকোনো একটা
[^abc]
a, b বা c ছাড়া যেকোনো অক্ষর
a|b
a অথবা b
(…)
একটা গ্রুপ: পুরোটা একসঙ্গে রিপিট হয়, আর ম্যাচের যে অংশ এতে পড়ে তা $1
(?<name>…)
নাম দেওয়া একটা গ্রুপ, $<name> হিসেবে ব্যবহার হয়
(?:…)
নম্বর ছাড়া একটা গ্রুপ
\1
গ্রুপ 1 যে লেখা ম্যাচ করেছে, ঠিক সেই লেখাই
(?=…)
পরে … আছে, যা ম্যাচের অংশ নয়
(?!…)
পরে … নেই
(?<=…)
আগে … আছে, যা ম্যাচের অংশ নয়
(?<!…)
আগে … নেই

কীভাবে ব্যবহার করবেন

  1. 1স্ল্যাশ ছাড়া আপনার প্যাটার্ন টাইপ করুন, আর দরকারি ফ্ল্যাগে টিক দিন, যেমন প্রতিটি ম্যাচ পেতে g বা বড়-ছোট হাতের অক্ষরের তফাত না মানতে i।
  2. 2টেস্ট করার লেখা পেস্ট করুন। টাইপ করতে করতেই ম্যাচগুলো হাইলাইট হয়, আর তাদের জায়গা ও গ্রুপ সহ তালিকায় দেখানো হয়।
  3. 3রিপ্লেস করতে “রিপ্লেস” বেছে নিয়ে রিপ্লেসমেন্ট টাইপ করুন: $1 বা $<name> একটা গ্রুপ বসায়, $& পুরো ম্যাচটা।
  4. 4কোথা থেকে শুরু করবেন বুঝতে পারছেন না? উদাহরণগুলোর একটা চাপুন, যেমন “ভারতীয় মোবাইল নম্বর” বা “PIN কোড”।

প্রায়ই জিজ্ঞাসিত প্রশ্ন

এই টেস্টার কোন ধরনের regex ব্যবহার করে?

JavaScript-এর, ঠিক যেভাবে আপনার ব্রাউজারের RegExp চালায়, তাই যে প্যাটার্ন এখানে কাজ করে, তা JavaScript আর TypeScript কোডেও একইভাবে কাজ করে। Python, PHP, Java আর .NET মোটের উপর একই রকম, তবে লুকবিহাইন্ড, নাম দেওয়া গ্রুপ আর ফ্ল্যাগের মতো কিছু জায়গায় আলাদা।

আমার regex পেজ আটকে দেয় বা টাইম আউট হয় কেন?

কিছু প্যাটার্ন, যেমন (a+)+$, হাল ছাড়ার আগে ইঞ্জিনকে ম্যাচ করানোর অসংখ্য উপায় চেষ্টা করায়: একে বলে ক্যাটাস্ট্রফিক ব্যাকট্র্যাকিং (catastrophic backtracking)। এখানে প্রতিটি টেস্ট ব্যাকগ্রাউন্ডে চলে আর 1 সেকেন্ড পরে থামিয়ে দেওয়া হয়, তাই পেজ কখনও আটকায় না। ভিতরের অংশটা এমনভাবে লিখুন যাতে সেটা শুধু একভাবেই ম্যাচ করে, যেমন (a+)+$ না লিখে a+$ লিখুন।

রিপ্লেসমেন্টে ক্যাপচার গ্রুপ কীভাবে ব্যবহার করব?

প্রথম গ্রুপের জন্য $1, দ্বিতীয়টার জন্য $2, আর (?<name>…) দিয়ে নাম দেওয়া গ্রুপের জন্য $<name> লিখুন। $& পুরো ম্যাচটা বসায়, আর $$ একটা ডলার চিহ্ন। তারিখের উদাহরণে $<year>-$<month>-$<day> লিখলে 26/01/1950 হয়ে যায় 1950-01-26।

ভারতীয় মোবাইল নম্বরের regex কী?

উদাহরণগুলোর মধ্যে “ভারতীয় মোবাইল নম্বর” চাপুন: (?<!\d)(?:\+91[\s-]?|0)?[6-9]\d{4}[\s-]?\d{5}(?!\d) এমন 10 অঙ্কের নম্বর খুঁজে বের করে যা 6, 7, 8 বা 9 দিয়ে শুরু হয়, সামনে +91 বা 0 থাকুক বা না থাকুক, আর মাঝে একটা স্পেস থাকুক বা না থাকুক।

আমার লেখা কি কোথাও পাঠানো হয়?

না। প্যাটার্ন আর লেখা কখনও আপনার ব্রাউজারের বাইরে যায় না, আর কিছুই সেভ করা হয় না। একবারে সর্বোচ্চ 100,000 অক্ষরের লেখা টেস্ট করা যায়, আর প্রথম 1,000টি ম্যাচ তালিকায় দেখানো ও হাইলাইট করা হয়।

যা খুঁজছেন তা পাচ্ছেন না?

দয়া করে নাম, নম্বর বা অন্য কোনো ব্যক্তিগত তথ্য লিখবেন না।