RegExp (রেগুলার এক্সপ্রেশন) এর কিছু গুরুত্বপূর্ণ methods (পদ্ধতি) রয়েছে, যা আপনি প্যাটার্নের সাথে মিল খুঁজতে এবং ম্যানিপুলেট করতে ব্যবহার করতে পারেন। এই methods গুলির মাধ্যমে আপনি স্ট্রিং থেকে তথ্য বের করতে, মিল পাওয়া অংশ replace করতে, এবং আরো অনেক কিছু করতে পারবেন।
test() Method
test() পদ্ধতিটি একটি প্যাটার্নের সাথে স্ট্রিংয়ের মিল পরীক্ষা করে। এটি বুলিয়ান মান (true বা false) রিটার্ন করে, যা জানিয়ে দেয় যে প্যাটার্নটি স্ট্রিংয়ের মধ্যে রয়েছে কিনা।
সিনট্যাক্স:
regex.test(str);
এখানে, regex একটি RegExp অবজেক্ট এবং str হলো যে স্ট্রিংটি আপনি পরীক্ষা করতে চান।
উদাহরণ:
let regex = /hello/;
let str = "hello world";
console.log(regex.test(str)); // true
এখানে, test() পদ্ধতিটি "hello" প্যাটার্নের সাথে "hello world" স্ট্রিং পরীক্ষা করে এবং true রিটার্ন করে কারণ প্যাটার্নটি মিলছে।
exec() Method
exec() পদ্ধতিটি একটি RegExp প্যাটার্নের সাথে স্ট্রিংয়ে মিল খুঁজে বের করে এবং মিলানো অংশ (match) একটি অ্যারে আকারে রিটার্ন করে। যদি মিল না পাওয়া যায়, তবে এটি null রিটার্ন করে।
সিনট্যাক্স:
regex.exec(str);
এখানে, regex হলো RegExp অবজেক্ট এবং str হলো স্ট্রিং।
উদাহরণ:
let regex = /hello/;
let str = "hello world";
let result = regex.exec(str);
console.log(result); // ["hello"]
এখানে, exec() পদ্ধতিটি "hello" প্যাটার্নের সাথে "hello world" স্ট্রিং মিলিয়ে একটি অ্যারে রিটার্ন করেছে, যেখানে "hello" স্ট্রিংটি রয়েছে।
match() Method
match() পদ্ধতিটি স্ট্রিংয়ের সাথে RegExp প্যাটার্ন মেলে কিনা পরীক্ষা করে এবং যদি মেলে, তবে মেলানো অংশের একটি অ্যারে রিটার্ন করে। এটি একটি স্ট্রিং মেথড এবং স্ট্রিং অবজেক্টে ব্যবহার করা হয়।
সিনট্যাক্স:
str.match(regex);
এখানে, regex হলো RegExp অবজেক্ট এবং str হলো স্ট্রিং।
উদাহরণ:
let str = "hello world";
let regex = /hello/;
let result = str.match(regex);
console.log(result); // ["hello"]
এখানে, "hello world" স্ট্রিংয়ের মধ্যে "hello" প্যাটার্নটি মিলিয়ে "hello" একটি অ্যারে রিটার্ন হচ্ছে।
replace() Method
replace() পদ্ধতিটি স্ট্রিংয়ে একটি প্যাটার্ন খুঁজে বের করে এবং তার পরিবর্তে অন্য কিছু বসিয়ে দেয়। এটি একটি স্ট্রিং মেথড এবং স্ট্রিং অবজেক্টে ব্যবহার করা হয়।
সিনট্যাক্স:
str.replace(regex, replacement);
এখানে, regex হলো RegExp প্যাটার্ন এবং replacement হলো নতুন স্ট্রিং বা ফাংশন যা আপনি প্রতিস্থাপন করতে চান।
উদাহরণ:
let str = "hello world";
let regex = /world/;
let result = str.replace(regex, "everyone");
console.log(result); // "hello everyone"
এখানে, "world" শব্দটি "everyone" দিয়ে প্রতিস্থাপন করা হয়েছে।
search() Method
search() পদ্ধতিটি একটি স্ট্রিংয়ের মধ্যে RegExp প্যাটার্নের প্রথম মিলটি খুঁজে বের করে এবং মিলের অবস্থান (index) রিটার্ন করে। যদি কোনো মিল না পাওয়া যায়, এটি -1 রিটার্ন করে।
সিনট্যাক্স:
str.search(regex);
এখানে, regex হলো RegExp প্যাটার্ন এবং str হলো স্ট্রিং।
উদাহরণ:
let str = "hello world";
let regex = /world/;
let result = str.search(regex);
console.log(result); // 6
এখানে, "world" শব্দটি প্রথমবার 6 নম্বর ইনডেক্সে পাওয়া গেছে, তাই 6 রিটার্ন হয়েছে।
split() Method
split() পদ্ধতিটি স্ট্রিংকে একটি প্যাটার্ন অনুসারে বিভক্ত করে এবং একটি অ্যারে রিটার্ন করে। এটি স্ট্রিং মেথড হিসেবে কাজ করে।
সিনট্যাক্স:
str.split(regex);
এখানে, regex হলো RegExp প্যাটার্ন এবং str হলো স্ট্রিং।
উদাহরণ:
let str = "apple,banana,orange";
let regex = /,/;
let result = str.split(regex);
console.log(result); // ["apple", "banana", "orange"]
এখানে, স্ট্রিংটি কমা (,) দিয়ে বিভক্ত করা হয়েছে এবং একটি অ্যারে ["apple", "banana", "orange"] রিটার্ন হয়েছে।
সারাংশ
RegExp এর কিছু গুরুত্বপূর্ণ methods যা স্ট্রিং ম্যানিপুলেশন এবং মিল খোঁজার জন্য ব্যবহৃত হয়:
test(): স্ট্রিংয়ের মধ্যে মিল আছে কিনা পরীক্ষা করে।exec(): প্যাটার্নের সাথে মিল খুঁজে এবং মিলানো অংশ রিটার্ন করে।match(): স্ট্রিংয়ের সাথে প্যাটার্ন মেলানোর চেষ্টা করে এবং মিলানো অংশের অ্যারে রিটার্ন করে।replace(): স্ট্রিংয়ে প্যাটার্ন খুঁজে তার পরিবর্তে নতুন কিছু বসায়।search(): প্যাটার্নের প্রথম মিলের ইনডেক্স রিটার্ন করে।split(): স্ট্রিংকে প্যাটার্ন অনুসারে বিভক্ত করে এবং একটি অ্যারে রিটার্ন করে।
এই পদ্ধতিগুলি RegExp এর ব্যবহার আরও শক্তিশালী এবং নমনীয় করে তোলে, যার মাধ্যমে স্ট্রিংয়ে অনুসন্ধান, প্রতিস্থাপন এবং বিভাজন খুবই সহজভাবে করা সম্ভব।
JavaScript এ test() একটি বিল্ট-ইন মেথড যা RegExp অবজেক্টের মাধ্যমে স্ট্রিংয়ের মধ্যে একটি প্যাটার্ন মিলছে কিনা তা পরীক্ষা করে। এটি একটি বুলিয়ান মান (true বা false) রিটার্ন করে, যা নির্দেশ করে যে প্যাটার্নটি স্ট্রিংয়ের সাথে মিলেছে কি না।
test() মেথডের সিনট্যাক্স
let regex = /pattern/;
let result = regex.test(string);
এখানে,
regexহল আপনার RegExp প্যাটার্ন,stringহল সেই স্ট্রিং যার মধ্যে আপনি প্যাটার্নটি খুঁজছেন,resultহলtrueবাfalse, যা জানায় প্যাটার্নটি স্ট্রিংয়ের মধ্যে পাওয়া গেছে কিনা।
test() মেথডের ব্যবহার
উদাহরণ ১: একটি সহজ প্যাটার্ন দিয়ে পরীক্ষা করা।
let regex = /hello/;
let str = "hello world";
console.log(regex.test(str)); // true
এখানে, hello প্যাটার্নটি স্ট্রিং "hello world"-এর মধ্যে আছে, তাই test() মেথড true রিটার্ন করবে।
উদাহরণ ২: প্যাটার্ন না মেলার ক্ষেত্রে ফলাফল।
let regex = /world/;
let str = "hello there";
console.log(regex.test(str)); // false
এখানে, world প্যাটার্নটি "hello there" স্ট্রিংয়ের মধ্যে নেই, তাই test() মেথড false রিটার্ন করবে।
ফ্ল্যাগস সহ test() ব্যবহার
RegExp প্যাটার্নে ফ্ল্যাগস (যেমন i, g, m) ব্যবহার করা সম্ভব। এগুলি প্যাটার্নটির আচরণ কাস্টমাইজ করতে সাহায্য করে, যেমন:
i: বড় হাতের এবং ছোট হাতের অক্ষরের পার্থক্য অবহেলা করা,g: গ্লোবাল সার্চ (স্ট্রিংয়ের সব স্থানে প্যাটার্ন খোঁজা),m: মাল্টি-লাইন সার্চ।
উদাহরণ ৩: i ফ্ল্যাগ সহ বড় এবং ছোট হাতের অক্ষরের মধ্যে পার্থক্য না করা।
let regex = /hello/i;
let str = "HELLO world";
console.log(regex.test(str)); // true
এখানে, i ফ্ল্যাগ ব্যবহার করার কারণে "HELLO" এবং "hello" উভয়ই মিলে যাবে, তাই test() মেথড true রিটার্ন করবে।
test() এবং গ্লোবাল প্যাটার্ন
যখন আপনি g ফ্ল্যাগ ব্যবহার করেন, তখন test() মেথড শুধুমাত্র প্রথম ম্যাচটি পরীক্ষা করে। গ্লোবাল সার্চের জন্য আপনাকে অন্য মেথড যেমন exec() ব্যবহার করতে হতে পারে, যেটি পরবর্তী ম্যাচগুলোও ফেরত দেয়।
উদাহরণ ৪: গ্লোবাল ফ্ল্যাগ ব্যবহার করে test() মেথড।
let regex = /hello/g;
let str = "hello there, hello again";
console.log(regex.test(str)); // true
এখানে, g ফ্ল্যাগ ব্যবহার করা সত্ত্বেও test() শুধুমাত্র প্রথম ম্যাচ (যেটি "hello" এর প্রথম উপস্থিতি) পরীক্ষা করবে এবং true রিটার্ন করবে।
সারাংশ
JavaScript এর test() মেথডটি একটি RegExp অবজেক্ট ব্যবহার করে স্ট্রিংয়ের মধ্যে প্যাটার্নের উপস্থিতি পরীক্ষা করার জন্য খুবই কার্যকর। এটি true রিটার্ন করে যদি প্যাটার্নটি স্ট্রিংয়ে থাকে, আর false রিটার্ন করে যদি প্যাটার্নটি না থাকে। test() মেথডটি সরল ও দ্রুত প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহৃত হয় এবং ফ্ল্যাগস সহ এটি আরও শক্তিশালী ও কাস্টমাইজযোগ্য হয়ে ওঠে।
JavaScript এর exec() পদ্ধতি একটি RegExp (রেগুলার এক্সপ্রেশন) মেথড, যা একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্নের সম্পূর্ণ মিল খুঁজে বের করতে ব্যবহৃত হয়। এটি RegExp অবজেক্টের একটি পদ্ধতি এবং এটি ম্যাচের বিস্তারিত তথ্য প্রদান করে, যেমন প্যাটার্নটির প্রথম মিল, এর ইনডেক্স, স্ট্রিংয়ের মধ্যে প্যাটার্নের অবস্থান ইত্যাদি।
exec() পদ্ধতির সিনট্যাক্স
let result = regex.exec(string);
এখানে:
- regex হল একটি RegExp অবজেক্ট।
- string হল সেই স্ট্রিং যেখানে আপনি প্যাটার্নটি খুঁজছেন।
- result হল একটি অ্যারে যা মিলের বিস্তারিত তথ্য ধারণ করবে।
exec() এর আউটপুট
যখন exec() সফলভাবে মিল পায়, তখন এটি একটি অ্যারে রিটার্ন করে, যেখানে:
- প্রথম উপাদানটি স্ট্রিংয়ের প্রথম ম্যাচ।
- পরবর্তী উপাদানগুলিতে গ্রুপের ম্যাচ (যদি থাকে) থাকবে।
- অ্যারের মধ্যে
indexএবংinputপ্রপার্টি থাকবে:index: প্যাটার্নের প্রথম ম্যাচের অবস্থান।input: মূল স্ট্রিংটি।
যদি কোনো ম্যাচ না পাওয়া যায়, তবে এটি null রিটার্ন করে।
উদাহরণ
সাধারণ ম্যাচ
let regex = /hello/;
let str = "hello world";
let result = regex.exec(str);
console.log(result);
// আউটপুট: [ 'hello', index: 0, input: 'hello world' ]
এখানে, exec() পদ্ধতি "hello" প্যাটার্নের প্রথম ম্যাচটি খুঁজে পাচ্ছে, যার ইনডেক্স হচ্ছে 0 (স্ট্রিংয়ের শুরুতে)।
গ্রুপ ম্যাচ
RegExp-এ গ্রুপ প্যারেন্টেসিস () ব্যবহার করা হয়, যেগুলি ভিন্ন অংশে বিভক্ত করতে সহায়তা করে। exec() পদ্ধতিটি গ্রুপের মিলও রিটার্ন করে।
let regex = /(hello) (world)/;
let str = "hello world";
let result = regex.exec(str);
console.log(result);
// আউটপুট: [ 'hello world', 'hello', 'world', index: 0, input: 'hello world' ]
এখানে, hello এবং world দুটি গ্রুপ হিসেবে আলাদাভাবে পাওয়া যাচ্ছে, যেগুলি স্ট্রিংয়ে তাদের যথাক্রমে প্রথম এবং দ্বিতীয় অংশ হিসেবে মেলে।
ম্যাচ না পাওয়া গেলে
যদি exec() কোনো মিল না পায়, তবে এটি null রিটার্ন করবে।
let regex = /cat/;
let str = "dog";
let result = regex.exec(str);
console.log(result);
// আউটপুট: null
এখানে, cat প্যাটার্নটি "dog" স্ট্রিংয়ের মধ্যে পাওয়া যাচ্ছে না, তাই exec() null রিটার্ন করছে।
একাধিক মিল খুঁজে বের করা
যদি আপনি একাধিক ম্যাচ খুঁজতে চান, তবে exec() পদ্ধতি পুনরায় ব্যবহার করা যেতে পারে। এটি স্ট্রিংয়ের মধ্যে পরবর্তী মিলের অবস্থান পুনরুদ্ধার করতে সাহায্য করবে।
let regex = /\d+/g; // g ফ্ল্যাগ ব্যবহার করে একাধিক মিল খোঁজা
let str = "The numbers are 123 and 456";
let result;
while ((result = regex.exec(str)) !== null) {
console.log(result[0], "found at index", result.index);
}
এখানে, \d+ প্যাটার্নটি একাধিক ডিজিটের জন্য এবং g ফ্ল্যাগটি একাধিক মিল খুঁজে বের করার জন্য ব্যবহৃত হয়েছে।
আউটপুট:
123 found at index 16
456 found at index 30
সারাংশ
exec() পদ্ধতি RegExp এর একটি গুরুত্বপূর্ণ মেথড, যা স্ট্রিংয়ের মধ্যে প্যাটার্নের প্রথম পূর্ণ মিল খুঁজে বের করে এবং এটি ম্যাচের বিস্তারিত তথ্য প্রদান করে। এটি মিলের অবস্থান, গ্রুপের ম্যাচ (যদি থাকে), এবং স্ট্রিংয়ের মূল ইনপুট প্রদান করে। যখন মিল পাওয়া যায় না, তখন এটি null রিটার্ন করে। exec() পদ্ধতি একাধিক মিল খুঁজে বের করার জন্য পুনরায় ব্যবহৃত হতে পারে।
JavaScript-এ String অবজেক্টের অনেক গুরুত্বপূর্ণ মেথড রয়েছে যেগুলি স্ট্রিংয়ের সাথে বিভিন্ন ধরনের অপারেশন করতে ব্যবহৃত হয়। এগুলোর মধ্যে কিছু পদ্ধতি (methods) RegExp (রেগুলার এক্সপ্রেশন) এর সাথে সম্পর্কিত এবং কিছু পদ্ধতি স্ট্রিং manipulation এর জন্য ব্যবহৃত হয়।
এই টিউটোরিয়ালে, আমরা চারটি গুরুত্বপূর্ণ মেথডের সাথে পরিচিত হব: match(), replace(), search(), এবং split()।
match()
match() মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট প্যাটার্ন (যেমন, RegExp) খুঁজে বের করে এবং সেই প্যাটার্নের সব মিলগুলির একটি অ্যারে রিটার্ন করে।
সিনট্যাক্স:
str.match(pattern);
- pattern: এটি একটি RegExp বা স্ট্রিং হতে পারে যা স্ট্রিংটির সাথে ম্যাচ করা হবে।
উদাহরণ:
let str = "The quick brown fox";
let result = str.match(/o/g);
console.log(result); // ["o", "o"]
এখানে, str.match(/o/g) প্যাটার্নটি স্ট্রিংয়ের মধ্যে "o" চরিত্রের সবগুলো মিল খুঁজে বের করবে। g ফ্ল্যাগটি প্রতিটি মিল খুঁজতে সাহায্য করে এবং অ্যারে আকারে ফলাফল দেয়।
replace()
replace() মেথডটি একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্নটি খুঁজে পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি একটি নতুন স্ট্রিং রিটার্ন করে যেখানে নির্দিষ্ট প্যাটার্নটি নতুন মান দ্বারা প্রতিস্থাপিত হয়।
সিনট্যাক্স:
str.replace(pattern, replacement);
- pattern: এটি একটি RegExp বা স্ট্রিং হতে পারে যা স্ট্রিংয়ের মধ্যে খুঁজে দেখা হবে।
- replacement: এটি স্ট্রিং বা ফাংশন হতে পারে, যা প্যাটার্নটির জন্য নতুন মান সরবরাহ করবে।
উদাহরণ:
let str = "Hello World";
let newStr = str.replace("World", "JavaScript");
console.log(newStr); // "Hello JavaScript"
এখানে, "World" প্যাটার্নটি "JavaScript" দিয়ে প্রতিস্থাপন করা হয়েছে।
RegExp ব্যবহার করে replace():
let str = "The quick brown fox";
let newStr = str.replace(/\b\w+/g, "Word");
console.log(newStr); // "Word Word Word Word"
এখানে, \b\w+ প্যাটার্নটি স্ট্রিংয়ের প্রতিটি শব্দের সাথে মিলেছে এবং Word দিয়ে প্রতিস্থাপন করা হয়েছে।
search()
search() মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি প্যাটার্ন খুঁজে তার প্রথম উপস্থিতির সূচক (index) রিটার্ন করে। এটি যদি প্যাটার্নটি না পায়, তাহলে -1 রিটার্ন করবে।
সিনট্যাক্স:
str.search(pattern);
- pattern: এটি একটি RegExp হতে হবে যা স্ট্রিংয়ের মধ্যে খুঁজে দেখা হবে।
উদাহরণ:
let str = "The quick brown fox";
let index = str.search(/brown/);
console.log(index); // 10
এখানে, "brown" প্যাটার্নটি স্ট্রিংয়ের 10 তম সূচকে পাওয়া গেছে, তাই 10 রিটার্ন হবে।
প্যাটার্ন না পাওয়া গেলে:
let str = "The quick brown fox";
let index = str.search(/cat/);
console.log(index); // -1
এখানে, "cat" প্যাটার্নটি স্ট্রিংয়ের মধ্যে পাওয়া যায়নি, তাই -1 রিটার্ন হবে।
split()
split() মেথডটি একটি স্ট্রিংকে নির্দিষ্ট একটি প্যাটার্ন বা চরিত্র দ্বারা বিভক্ত করে এবং একটি অ্যারে রিটার্ন করে। এটি স্ট্রিংটিকে ছোট ছোট অংশে ভেঙে ফেলার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
str.split(separator, limit);
- separator: এটি একটি স্ট্রিং বা RegExp হতে পারে যার ভিত্তিতে স্ট্রিংটি বিভক্ত হবে।
- limit: এটি একটি ঐচ্ছিক আর্গুমেন্ট যা কতটি ভাগে বিভক্ত করা হবে তা নির্ধারণ করে।
উদাহরণ:
let str = "apple,banana,orange";
let result = str.split(",");
console.log(result); // ["apple", "banana", "orange"]
এখানে, split(",") প্যাটার্নটি স্ট্রিংটি কমা (,) দ্বারা বিভক্ত করেছে এবং একটি অ্যারে রিটার্ন করেছে।
limit ব্যবহার:
let str = "apple,banana,orange";
let result = str.split(",", 2);
console.log(result); // ["apple", "banana"]
এখানে, স্ট্রিংটি শুধুমাত্র প্রথম দুটি অংশে বিভক্ত হয়েছে, কারণ limit আর্গুমেন্টটি 2 সেট করা হয়েছে।
সারাংশ
JavaScript এ স্ট্রিংয়ের সাথে কাজ করার জন্য match(), replace(), search(), এবং split() মেথডগুলি গুরুত্বপূর্ণ পদ্ধতি। এগুলি স্ট্রিং manipulation এর জন্য প্রয়োজনীয় এবং RegExp এর সাথে জটিল টেক্সট অনুসন্ধান, পরিবর্তন, এবং বিভাজন করতে সাহায্য করে।
match(): স্ট্রিংয়ের মধ্যে প্যাটার্নের সব মিলের অ্যারে রিটার্ন করে।replace(): স্ট্রিংয়ে প্যাটার্ন খুঁজে সেটি নতুন মান দিয়ে প্রতিস্থাপন করে।search(): স্ট্রিংয়ের মধ্যে প্যাটার্নের প্রথম উপস্থিতির সূচক রিটার্ন করে।split(): স্ট্রিংকে নির্দিষ্ট প্যাটার্ন দ্বারা বিভক্ত করে একটি অ্যারে রিটার্ন করে।
Read more