জাভাস্ক্রিপ্ট রেগএক্সপি (Regular Expression) হলো একটি প্যাটার্ন ম্যাচিং টুল, যা টেক্সট বা স্ট্রিং থেকে নির্দিষ্ট ধরণের প্যাটার্ন খুঁজে বের করতে, মডিফাই করতে বা যাচাই করতে ব্যবহৃত হয়। Regular Expression টেক্সটের মধ্যে নির্দিষ্ট চরিত্র বা প্যাটার্ন অনুসন্ধান করার একটি শক্তিশালী উপায়। JavaScript-এ, RegExp অবজেক্ট ব্যবহার করে আপনি এই প্যাটার্নগুলো তৈরি ও প্রয়োগ করতে পারেন।
RegExp বা Regular Expressions হলো একটি শক্তিশালী টুল যা স্ট্রিং-এ নির্দিষ্ট প্যাটার্ন খুঁজে বের করা, মিলানো, অথবা ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। এটি মূলত এক ধরনের প্যাটার্ন-ভিত্তিক টেক্সট প্রসেসিং টুল। JavaScript-এ RegExp এর মাধ্যমে আপনি কোনো স্ট্রিং-এ নির্দিষ্ট ধরণের সাবস্ট্রিং খুঁজে বের করতে, তা পরিবর্তন করতে, অথবা অন্যান্য টেক্সট প্রসেসিং কাজ সম্পন্ন করতে পারেন।
RegExp স্ট্রিং থেকে ডেটা খোঁজার জন্য, ডেটার ভ্যালিডেশন করার জন্য (যেমন ইমেইল ঠিকানা, ফোন নম্বর, পাসওয়ার্ড ফরম্যাট), অথবা স্ট্রিং-এ কিছু নির্দিষ্ট সাবস্ট্রিং প্রতিস্থাপন করতে ব্যবহার করা হয়।
JavaScript-এ RegExp তৈরি করার দুটি প্রধান পদ্ধতি রয়েছে:
Literal Syntax: RegExp সরাসরি // এর মধ্যে লিখে তৈরি করা যায়।
const regex = /abc/;
Constructor Syntax: RegExp কনস্ট্রাক্টর ফাংশনের মাধ্যমে RegExp তৈরি করা যায়।
const regex = new RegExp('abc');
উভয় পদ্ধতিই একই কাজ করে, তবে কিছু ক্ষেত্রে কনস্ট্রাক্টর পদ্ধতি ব্যবহার করা হয়, বিশেষত যখন প্যাটার্নটি ডাইনামিকভাবে তৈরি করতে হয়।
Flags RegExp এর কাজ করার ধরনকে নিয়ন্ত্রণ করে। JavaScript এ কিছু সাধারণ flags হলো:
. চরিত্রের জন্য, যা সাধারণত কোনো একক লাইন শেষে কাজ করে, নতুন লাইন সহ সবকিছুর সাথে মিল খুঁজতে সাহায্য করে।const regex = /abc/i; // Case-insensitive search
const result = regex.test("ABC");
console.log(result); // true
এখানে /abc/i অর্থ হলো ছোট এবং বড় হাতের abc উভয়ই ম্যাচ করবে।
RegExp-এর মাধ্যমে বিভিন্ন ধরণের প্যাটার্ন তৈরি করা যায়, যেগুলো স্ট্রিং-এর নির্দিষ্ট অংশ খুঁজে বের করতে সাহায্য করে। কিছু গুরুত্বপূর্ণ RegExp উপাদান নিচে দেওয়া হলো:
Literal character এর মাধ্যমে নির্দিষ্ট অক্ষর খুঁজে বের করা হয়। উদাহরণস্বরূপ:
const regex = /hello/;
const result = regex.test("hello world");
console.log(result); // true
এখানে, /hello/ স্ট্রিং "hello world" এ hello খুঁজে বের করছে।
Metacharacters হলো বিশেষ ক্যারেক্টার যা RegExp এ নির্দিষ্ট ধরণের প্যাটার্ন বা কাজ সম্পন্ন করতে ব্যবহৃত হয়। কিছু গুরুত্বপূর্ণ metacharacters হলো:
| Metacharacter | ব্যবহার | উদাহরণ |
|---|---|---|
. | যেকোনো একটি অক্ষরের সাথে মিল | /h.llo/ "hello", "hallo" এর সাথে মিল খুঁজবে |
^ | স্ট্রিং এর শুরুতে মিল | /^hello/ "hello world"-এর সাথে মিলবে |
$ | স্ট্রিং এর শেষে মিল | /world$/ "hello world"-এর সাথে মিলবে |
* | পূর্ববর্তী ক্যারেক্টার ০ বা বেশি বার পুনরাবৃত্তি | /he*lo/ "hlo", "helo", "heeeelo" এর সাথে মিলবে |
+ | পূর্ববর্তী ক্যারেক্টার ১ বা বেশি বার পুনরাবৃত্তি | /he+lo/ "helo", "heeeelo" এর সাথে মিলবে, কিন্তু "hlo" নয় |
? | পূর্ববর্তী ক্যারেক্টার ০ বা ১ বার পুনরাবৃত্তি | /he?llo/ "hllo", "hello" এর সাথে মিলবে |
\ | মেটাচারেক্টারকে Literal হিসেবে গণ্য করতে ব্যবহার করা হয় | /\./ "hello.world"-এর মধ্যে "." এর সাথে মিলবে |
const regex = /h.llo/;
console.log(regex.test("hello")); // true
console.log(regex.test("hallo")); // true
console.log(regex.test("hxllo")); // true
এখানে . যেকোনো একটি অক্ষরের সাথে মিল খুঁজবে।
Character sets ব্যবহার করে নির্দিষ্ট অক্ষরের সেটের মধ্যে মিল খোঁজা যায়। এটি square brackets এর মধ্যে থাকে।
const regex = /h[aeiou]llo/; // a, e, i, o, u এর যেকোনো একটি অক্ষর হতে পারে
console.log(regex.test("hello")); // true
console.log(regex.test("hallo")); // true
console.log(regex.test("hillo")); // true
console.log(regex.test("hollo")); // true
console.log(regex.test("hxllo")); // false
এখানে [aeiou] যেকোনো একটি vowel (a, e, i, o, u) এর সাথে মিল খুঁজবে।
Character sets এর মধ্যে ranges ব্যবহার করে অক্ষরের পরিসর নির্ধারণ করা যায়, যেমন [a-z], [A-Z], [0-9] ইত্যাদি।
const regex = /[a-z]ello/;
console.log(regex.test("hello")); // true
console.log(regex.test("Hello")); // false
এখানে [a-z] এর অর্থ হলো ছোট হাতের যে কোনো অক্ষর।
RegExp এ কিছু বিশেষ character classes রয়েছে, যেগুলো বিশেষ ধরণের অক্ষরগুলির সাথে মিল খুঁজতে ব্যবহৃত হয়।
| Character Class | বর্ণনা | উদাহরণ |
|---|---|---|
\d | যেকোনো সংখ্যা (0-9) | /\d/ "123" এর সাথে মিলবে |
\D | সংখ্যা ব্যতীত অন্য কিছু | /\D/ "abc" এর সাথে মিলবে |
\w | যেকোনো অক্ষর বা সংখ্যা (A-Z, a-z, 0-9, _) | /\w/ "hello123" এর সাথে মিলবে |
\W | অক্ষর বা সংখ্যা ব্যতীত অন্য কিছু | /\W/ "!" এর সাথে মিলবে |
\s | যেকোনো whitespace (space, tab) | /\s/ "hello world" এর স্পেসের সাথে মিলবে |
const regex = /\d+/;
console.log(regex.test("My age is 25")); // true
এখানে \d+ এর অর্থ হলো এক বা একাধিক সংখ্যা।
Quantifiers ব্যবহার করে নির্দিষ্ট সংখ্যক পুনরাবৃত্তি নির্ধারণ করা যায়। কিছু গুরুত্বপূর্ণ quantifiers হলো:
| Quantifier | বর্ণনা | উদাহরণ |
|---|---|---|
{n} | ঠিক n বার পুনরাবৃত্তি | /a{3}/ "aaa" এর সাথে মিলবে |
{n,} | কমপক্ষে n বার পুনরাবৃত্তি | /a{2,}/ "aa", "aaa", "aaaa" এর সাথে মিলবে |
{n,m} | n থেকে m বার পর্যন্ত পুনরাবৃত্তি | /a{2,4}/ "aa", "aaa", "aaaa" এর সাথে মিলবে |
const regex = /a{2,4}/;
console.log(regex.test("aaa")); // true
console.log(regex.test("a")); // false
এখানে a{2,4} এর অর্থ হলো a ২ থেকে ৪ বার পর্যন্ত পুনরাবৃত্তি হতে পারে।
JavaScript-এ RegExp এর বিভিন্ন ফাংশন রয়েছে, যেগুলো দিয়ে স্ট্রিং-এ প্যাটার্ন খোঁজা, প্রতিস্থাপন করা, এবং ম্যানিপুলেশন করা যায়।
test() ফাংশনtest() ফাংশন স্ট্রিং-এ কোনো প্যাটার্নের সাথে মিল রয়েছে কিনা তা যাচাই করে এবং true বা false রিটার্ন করে।
const regex = /hello/;
console.log(regex.test("hello world")); // true
match() ফাংশনmatch() ফাংশন একটি স্ট্রিং থেকে সমস্ত ম্যাচিং রেজাল্ট রিটার্ন করে।
const str = "The price is 50 dollars";
const result = str.match(/\d+/);
console.log(result); // ["50"]
replace() ফাংশনreplace() ফাংশন ব্যবহার করে কোনো স্ট্রিং-এর নির্দিষ্ট অংশ প্রতিস্থাপন করা যায়।
const str = "I love JavaScript!";
const result = str.replace(/JavaScript/, "RegExp");
console.log(result); // "I love RegExp!"
split() ফাংশনsplit() ফাংশন কোনো স্ট্রিং-কে নির্দিষ্ট প্যাটার্ন অনুযায়ী ভাগ করে।
const str = "apple, banana, cherry";
const result = str.split(/,\s*/);
console.log(result); // ["apple", "banana", "cherry"]
search() ফাংশনsearch() ফাংশন স্ট্রিং-এ নির্দিষ্ট প্যাটার্নের প্রথম অবস্থান খুঁজে বের করে।
const str = "The quick brown fox";
const result = str.search(/quick/);
console.log(result); // 4
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(regex.test("example@gmail.com")); // true
console.log(regex.test("example@com")); // false
const regex = /^\d{10}$/;
console.log(regex.test("0123456789")); // true
console.log(regex.test("123-456-7890")); // false
const regex = /^(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,}$/;
console.log(regex.test("Password1")); // true
console.log(regex.test("password")); // false
JavaScript RegExp একটি অত্যন্ত শক্তিশালী টুল, যা স্ট্রিং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের প্যাটার্ন ম্যাচিং, ডেটা ভ্যালিডেশন, এবং টেক্সট প্রসেসিং কাজ করতে সহায়ক। RegExp এর প্রধান উপাদানগুলো যেমন character classes, metacharacters, এবং quantifiers সঠিকভাবে ব্যবহার করলে জটিল স্ট্রিং অপারেশনও সহজ হয়ে যায়।
জাভাস্ক্রিপ্ট রেগএক্সপি (Regular Expression) হলো একটি প্যাটার্ন ম্যাচিং টুল, যা টেক্সট বা স্ট্রিং থেকে নির্দিষ্ট ধরণের প্যাটার্ন খুঁজে বের করতে, মডিফাই করতে বা যাচাই করতে ব্যবহৃত হয়। Regular Expression টেক্সটের মধ্যে নির্দিষ্ট চরিত্র বা প্যাটার্ন অনুসন্ধান করার একটি শক্তিশালী উপায়। JavaScript-এ, RegExp অবজেক্ট ব্যবহার করে আপনি এই প্যাটার্নগুলো তৈরি ও প্রয়োগ করতে পারেন।
RegExp বা Regular Expressions হলো একটি শক্তিশালী টুল যা স্ট্রিং-এ নির্দিষ্ট প্যাটার্ন খুঁজে বের করা, মিলানো, অথবা ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। এটি মূলত এক ধরনের প্যাটার্ন-ভিত্তিক টেক্সট প্রসেসিং টুল। JavaScript-এ RegExp এর মাধ্যমে আপনি কোনো স্ট্রিং-এ নির্দিষ্ট ধরণের সাবস্ট্রিং খুঁজে বের করতে, তা পরিবর্তন করতে, অথবা অন্যান্য টেক্সট প্রসেসিং কাজ সম্পন্ন করতে পারেন।
RegExp স্ট্রিং থেকে ডেটা খোঁজার জন্য, ডেটার ভ্যালিডেশন করার জন্য (যেমন ইমেইল ঠিকানা, ফোন নম্বর, পাসওয়ার্ড ফরম্যাট), অথবা স্ট্রিং-এ কিছু নির্দিষ্ট সাবস্ট্রিং প্রতিস্থাপন করতে ব্যবহার করা হয়।
JavaScript-এ RegExp তৈরি করার দুটি প্রধান পদ্ধতি রয়েছে:
Literal Syntax: RegExp সরাসরি // এর মধ্যে লিখে তৈরি করা যায়।
const regex = /abc/;
Constructor Syntax: RegExp কনস্ট্রাক্টর ফাংশনের মাধ্যমে RegExp তৈরি করা যায়।
const regex = new RegExp('abc');
উভয় পদ্ধতিই একই কাজ করে, তবে কিছু ক্ষেত্রে কনস্ট্রাক্টর পদ্ধতি ব্যবহার করা হয়, বিশেষত যখন প্যাটার্নটি ডাইনামিকভাবে তৈরি করতে হয়।
Flags RegExp এর কাজ করার ধরনকে নিয়ন্ত্রণ করে। JavaScript এ কিছু সাধারণ flags হলো:
. চরিত্রের জন্য, যা সাধারণত কোনো একক লাইন শেষে কাজ করে, নতুন লাইন সহ সবকিছুর সাথে মিল খুঁজতে সাহায্য করে।const regex = /abc/i; // Case-insensitive search
const result = regex.test("ABC");
console.log(result); // true
এখানে /abc/i অর্থ হলো ছোট এবং বড় হাতের abc উভয়ই ম্যাচ করবে।
RegExp-এর মাধ্যমে বিভিন্ন ধরণের প্যাটার্ন তৈরি করা যায়, যেগুলো স্ট্রিং-এর নির্দিষ্ট অংশ খুঁজে বের করতে সাহায্য করে। কিছু গুরুত্বপূর্ণ RegExp উপাদান নিচে দেওয়া হলো:
Literal character এর মাধ্যমে নির্দিষ্ট অক্ষর খুঁজে বের করা হয়। উদাহরণস্বরূপ:
const regex = /hello/;
const result = regex.test("hello world");
console.log(result); // true
এখানে, /hello/ স্ট্রিং "hello world" এ hello খুঁজে বের করছে।
Metacharacters হলো বিশেষ ক্যারেক্টার যা RegExp এ নির্দিষ্ট ধরণের প্যাটার্ন বা কাজ সম্পন্ন করতে ব্যবহৃত হয়। কিছু গুরুত্বপূর্ণ metacharacters হলো:
| Metacharacter | ব্যবহার | উদাহরণ |
|---|---|---|
. | যেকোনো একটি অক্ষরের সাথে মিল | /h.llo/ "hello", "hallo" এর সাথে মিল খুঁজবে |
^ | স্ট্রিং এর শুরুতে মিল | /^hello/ "hello world"-এর সাথে মিলবে |
$ | স্ট্রিং এর শেষে মিল | /world$/ "hello world"-এর সাথে মিলবে |
* | পূর্ববর্তী ক্যারেক্টার ০ বা বেশি বার পুনরাবৃত্তি | /he*lo/ "hlo", "helo", "heeeelo" এর সাথে মিলবে |
+ | পূর্ববর্তী ক্যারেক্টার ১ বা বেশি বার পুনরাবৃত্তি | /he+lo/ "helo", "heeeelo" এর সাথে মিলবে, কিন্তু "hlo" নয় |
? | পূর্ববর্তী ক্যারেক্টার ০ বা ১ বার পুনরাবৃত্তি | /he?llo/ "hllo", "hello" এর সাথে মিলবে |
\ | মেটাচারেক্টারকে Literal হিসেবে গণ্য করতে ব্যবহার করা হয় | /\./ "hello.world"-এর মধ্যে "." এর সাথে মিলবে |
const regex = /h.llo/;
console.log(regex.test("hello")); // true
console.log(regex.test("hallo")); // true
console.log(regex.test("hxllo")); // true
এখানে . যেকোনো একটি অক্ষরের সাথে মিল খুঁজবে।
Character sets ব্যবহার করে নির্দিষ্ট অক্ষরের সেটের মধ্যে মিল খোঁজা যায়। এটি square brackets এর মধ্যে থাকে।
const regex = /h[aeiou]llo/; // a, e, i, o, u এর যেকোনো একটি অক্ষর হতে পারে
console.log(regex.test("hello")); // true
console.log(regex.test("hallo")); // true
console.log(regex.test("hillo")); // true
console.log(regex.test("hollo")); // true
console.log(regex.test("hxllo")); // false
এখানে [aeiou] যেকোনো একটি vowel (a, e, i, o, u) এর সাথে মিল খুঁজবে।
Character sets এর মধ্যে ranges ব্যবহার করে অক্ষরের পরিসর নির্ধারণ করা যায়, যেমন [a-z], [A-Z], [0-9] ইত্যাদি।
const regex = /[a-z]ello/;
console.log(regex.test("hello")); // true
console.log(regex.test("Hello")); // false
এখানে [a-z] এর অর্থ হলো ছোট হাতের যে কোনো অক্ষর।
RegExp এ কিছু বিশেষ character classes রয়েছে, যেগুলো বিশেষ ধরণের অক্ষরগুলির সাথে মিল খুঁজতে ব্যবহৃত হয়।
| Character Class | বর্ণনা | উদাহরণ |
|---|---|---|
\d | যেকোনো সংখ্যা (0-9) | /\d/ "123" এর সাথে মিলবে |
\D | সংখ্যা ব্যতীত অন্য কিছু | /\D/ "abc" এর সাথে মিলবে |
\w | যেকোনো অক্ষর বা সংখ্যা (A-Z, a-z, 0-9, _) | /\w/ "hello123" এর সাথে মিলবে |
\W | অক্ষর বা সংখ্যা ব্যতীত অন্য কিছু | /\W/ "!" এর সাথে মিলবে |
\s | যেকোনো whitespace (space, tab) | /\s/ "hello world" এর স্পেসের সাথে মিলবে |
const regex = /\d+/;
console.log(regex.test("My age is 25")); // true
এখানে \d+ এর অর্থ হলো এক বা একাধিক সংখ্যা।
Quantifiers ব্যবহার করে নির্দিষ্ট সংখ্যক পুনরাবৃত্তি নির্ধারণ করা যায়। কিছু গুরুত্বপূর্ণ quantifiers হলো:
| Quantifier | বর্ণনা | উদাহরণ |
|---|---|---|
{n} | ঠিক n বার পুনরাবৃত্তি | /a{3}/ "aaa" এর সাথে মিলবে |
{n,} | কমপক্ষে n বার পুনরাবৃত্তি | /a{2,}/ "aa", "aaa", "aaaa" এর সাথে মিলবে |
{n,m} | n থেকে m বার পর্যন্ত পুনরাবৃত্তি | /a{2,4}/ "aa", "aaa", "aaaa" এর সাথে মিলবে |
const regex = /a{2,4}/;
console.log(regex.test("aaa")); // true
console.log(regex.test("a")); // false
এখানে a{2,4} এর অর্থ হলো a ২ থেকে ৪ বার পর্যন্ত পুনরাবৃত্তি হতে পারে।
JavaScript-এ RegExp এর বিভিন্ন ফাংশন রয়েছে, যেগুলো দিয়ে স্ট্রিং-এ প্যাটার্ন খোঁজা, প্রতিস্থাপন করা, এবং ম্যানিপুলেশন করা যায়।
test() ফাংশনtest() ফাংশন স্ট্রিং-এ কোনো প্যাটার্নের সাথে মিল রয়েছে কিনা তা যাচাই করে এবং true বা false রিটার্ন করে।
const regex = /hello/;
console.log(regex.test("hello world")); // true
match() ফাংশনmatch() ফাংশন একটি স্ট্রিং থেকে সমস্ত ম্যাচিং রেজাল্ট রিটার্ন করে।
const str = "The price is 50 dollars";
const result = str.match(/\d+/);
console.log(result); // ["50"]
replace() ফাংশনreplace() ফাংশন ব্যবহার করে কোনো স্ট্রিং-এর নির্দিষ্ট অংশ প্রতিস্থাপন করা যায়।
const str = "I love JavaScript!";
const result = str.replace(/JavaScript/, "RegExp");
console.log(result); // "I love RegExp!"
split() ফাংশনsplit() ফাংশন কোনো স্ট্রিং-কে নির্দিষ্ট প্যাটার্ন অনুযায়ী ভাগ করে।
const str = "apple, banana, cherry";
const result = str.split(/,\s*/);
console.log(result); // ["apple", "banana", "cherry"]
search() ফাংশনsearch() ফাংশন স্ট্রিং-এ নির্দিষ্ট প্যাটার্নের প্রথম অবস্থান খুঁজে বের করে।
const str = "The quick brown fox";
const result = str.search(/quick/);
console.log(result); // 4
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(regex.test("example@gmail.com")); // true
console.log(regex.test("example@com")); // false
const regex = /^\d{10}$/;
console.log(regex.test("0123456789")); // true
console.log(regex.test("123-456-7890")); // false
const regex = /^(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,}$/;
console.log(regex.test("Password1")); // true
console.log(regex.test("password")); // false
JavaScript RegExp একটি অত্যন্ত শক্তিশালী টুল, যা স্ট্রিং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের প্যাটার্ন ম্যাচিং, ডেটা ভ্যালিডেশন, এবং টেক্সট প্রসেসিং কাজ করতে সহায়ক। RegExp এর প্রধান উপাদানগুলো যেমন character classes, metacharacters, এবং quantifiers সঠিকভাবে ব্যবহার করলে জটিল স্ট্রিং অপারেশনও সহজ হয়ে যায়।
আপনি আমাকে যেকোনো প্রশ্ন করতে পারেন, যেমনঃ
Are you sure to start over?