JavaScript এ RegExp প্যাটার্ন ব্যবহার করে স্ট্রিংয়ের মধ্যে নির্দিষ্ট অংশ খুঁজে বের করা, যাচাই করা বা প্রতিস্থাপন করা সম্ভব। RegExp এর বেসিক প্যাটার্ন এবং মেটাচারিত্রগুলি এই কাজগুলোকে সহজ এবং দ্রুত করে তোলে।
বেসিক প্যাটার্নস
RegExp এর প্যাটার্ন সাধারণত কিছু নির্দিষ্ট অক্ষর বা শব্দের সমন্বয়ে গঠিত হয়। এর মাধ্যমে আপনি স্ট্রিংয়ের মধ্যে যেকোনো নির্দিষ্ট টেক্সট বা চরিত্র খুঁজে বের করতে পারেন।
উদাহরণ:
/abc/: এটি "abc" শব্দটি খুঁজে বের করবে।
মেটাচারিত্র (Metacharacters)
মেটাচারিত্র হল RegExp এর বিশেষ চরিত্র, যা প্যাটার্নের মধ্যে ব্যবহার করলে স্ট্রিংয়ের নির্দিষ্ট অংশ খুঁজে পাওয়া যায়। এগুলি সাধারণত প্রাথমিকভাবে বিশেষ কাজ করে যেমন, একটি বিশেষ চরিত্রের প্রতিনিধিত্ব করা, অথবা একাধিক চরিত্রের সাথে মেলে এমন একটি প্যাটার্ন তৈরি করা।
. (ডট)
ডট মেটাচারিত্রটি যেকোনো একক চরিত্রের সাথে মেলে, কিন্তু এটি নতুন লাইন (newline) কে বাদ দেয়।
উদাহরণ:
let regex = /a.b/;
let str = "acb";
console.log(regex.test(str)); // true
এখানে, a.b প্যাটার্নটি "acb" স্ট্রিংয়ের মধ্যে মিলছে, কারণ ডট (.) যেকোনো একক চরিত্রের সাথে মেলে।
^ (ক্যারেট)
^ মেটাচারিত্রটি স্ট্রিংয়ের শুরুতে একটি প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়।
উদাহরণ:
let regex = /^hello/;
let str = "hello world";
console.log(regex.test(str)); // true
এখানে, ^hello প্যাটার্নটি স্ট্রিংয়ের শুরুতে "hello" খুঁজে পাচ্ছে।
$ (ডল্যার সাইন)
$ মেটাচারিত্রটি স্ট্রিংয়ের শেষে একটি প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়।
উদাহরণ:
let regex = /world$/;
let str = "hello world";
console.log(regex.test(str)); // true
এখানে, world$ প্যাটার্নটি স্ট্রিংয়ের শেষের দিকে "world" খুঁজে পাচ্ছে।
[] (ক্যারেক্টার ক্লাস)
[] প্যাটার্নটি এক বা একাধিক চরিত্রের মধ্যে থেকে যেকোনো একটি মেলাতে ব্যবহৃত হয়।
উদাহরণ:
let regex = /[aeiou]/;
let str = "hello";
console.log(regex.test(str)); // true
এখানে, [aeiou] প্যাটার্নটি "hello" স্ট্রিংয়ের মধ্যে কোনো একটি vowel (a, e, i, o, u) খুঁজে পায়।
[^] (ক্যারেক্টার ক্লাসের বিপরীত)
[^] প্যাটার্নটি নির্দিষ্ট ক্যারেক্টার ক্লাসের বাইরে থাকা যেকোনো একটি চরিত্রের সাথে মেলে।
উদাহরণ:
let regex = /[^aeiou]/;
let str = "hello";
console.log(regex.test(str)); // true
এখানে, [^aeiou] প্যাটার্নটি "hello" স্ট্রিংয়ের মধ্যে কোনো একটি অব্যঞ্জক (non-vowel) চরিত্র খুঁজে পায়।
* (জিরো বা তার বেশি মেলানো)
* মেটাচারিত্রটি যে কোনো একটি ক্যারেক্টার বা প্যাটার্নের শূন্য বা তার বেশি মিল খুঁজে বের করতে ব্যবহৃত হয়।
উদাহরণ:
let regex = /a*b/;
let str = "aaab";
console.log(regex.test(str)); // true
এখানে, a*b প্যাটার্নটি "aaab" স্ট্রিংয়ের মধ্যে মিলছে, কারণ a* শূন্য বা একাধিক "a" এর সাথে মেলে।
+ (এক বা তার বেশি মেলানো)
+ মেটাচারিত্রটি যে কোনো একটি ক্যারেক্টার বা প্যাটার্নের এক বা তার বেশি মিল খুঁজে বের করতে ব্যবহৃত হয়।
উদাহরণ:
let regex = /a+b/;
let str = "aaab";
console.log(regex.test(str)); // true
এখানে, a+b প্যাটার্নটি "aaab" স্ট্রিংয়ের মধ্যে মিলছে, কারণ a+ এক বা একাধিক "a" এর সাথে মেলে।
{} (নির্দিষ্ট পরিমাণ মেলানো)
{} মেটাচারিত্রটি একটি প্যাটার্নের নির্দিষ্ট পরিমাণ মিল খুঁজে বের করতে ব্যবহৃত হয়।
উদাহরণ:
let regex = /a{2}/;
let str = "aaab";
console.log(regex.test(str)); // true
এখানে, a{2} প্যাটার্নটি স্ট্রিংয়ের মধ্যে ঠিক দুইটি "a" খুঁজে পায়।
| (অথবা)
| মেটাচারিত্রটি একাধিক প্যাটার্নের মধ্যে অথবা (OR) শর্তের মতো কাজ করে। এটি দুটি বা তার বেশি বিকল্প প্যাটার্নের মধ্যে যেকোনো একটি মেলাতে ব্যবহার করা হয়।
উদাহরণ:
let regex = /cat|dog/;
let str = "I have a cat";
console.log(regex.test(str)); // true
এখানে, cat|dog প্যাটার্নটি স্ট্রিংয়ের মধ্যে "cat" বা "dog" এর যেকোনো একটি খুঁজে পায়।
সারাংশ
JavaScript এ RegExp এর বেসিক প্যাটার্নস এবং মেটাচারিত্রগুলি স্ট্রিংয়ের মধ্যে নির্দিষ্ট টেক্সট খুঁজে বের করতে সহায়ক। এগুলি যেমন . (ডট), ^ (শুরু), $ (শেষ), [] (ক্যারেক্টার ক্লাস), * (জিরো বা বেশি), + (এক বা বেশি), {} (নির্দিষ্ট পরিমাণ), এবং | (অথবা) ইত্যাদি, স্ট্রিং ম্যানিপুলেশনে অত্যন্ত কার্যকর। RegExp এর মেটাচারিত্রগুলি ব্যবহারে আরও জটিল এবং শক্তিশালী প্যাটার্ন তৈরি করা সম্ভব।
RegExp-এ . (ডট) একটি বিশেষ মেটাচরিত্র (metacharacter) যা যেকোনো একটি চরিত্র (নতুন লাইন ছাড়া) মেলানোর জন্য ব্যবহৃত হয়। এটি খুবই শক্তিশালী এবং সাধারণত স্ট্রিংয়ে বিভিন্ন ধরনের অক্ষরের মিল খুঁজতে ব্যবহৃত হয়, যেখানে আপনি কোনো নির্দিষ্ট চরিত্র জানেন না বা তা পরিবর্তনশীল হতে পারে।
. (ডট) এর ব্যবহার
ডট (.) প্যাটার্নটি স্ট্রিংয়ের মধ্যে কোনো নির্দিষ্ট চরিত্রের পরিবর্তে যেকোনো একক চরিত্রকে ম্যাচ করে। তবে, এটি নতুন লাইন (newline) চিহ্ন \n ছাড়া অন্য যেকোনো চরিত্রের সাথে মেলে।
সিনট্যাক্স:
let regex = /./;
এখানে, . প্যাটার্নটি যেকোনো একটি চরিত্রের জন্য মিলে যাবে, যেমন: অক্ষর, সংখ্যা, বিশেষ চিহ্ন ইত্যাদি।
উদাহরণ:
let regex = /a.b/;
let str = "acb";
console.log(regex.test(str)); // true
এখানে, a.b প্যাটার্নটি স্ট্রিং acb এর মধ্যে মিলবে কারণ ডট (.) যে কোনো একটি চরিত্রের সাথে মিলতে পারে, এবং এখানে এটি "c" এর সাথে মিলে যাচ্ছে।
. (ডট) এর ব্যবহার সীমাবদ্ধতা
যেহেতু ডট (.) যেকোনো একক চরিত্রের সাথে মেলে, এটি নতুন লাইন (newline) চরিত্রের সাথে মেলে না। অর্থাৎ, ডট (.) প্যাটার্ন স্ট্রিংয়ের একটি লাইন পর্যন্ত সীমাবদ্ধ থাকে। যদি আপনি নতুন লাইনও মেলাতে চান, তাহলে s (dotall) ফ্ল্যাগ ব্যবহার করতে হবে।
উদাহরণ:
let regex = /a.b/;
let str = "a\nb";
console.log(regex.test(str)); // false
এখানে, a\nb স্ট্রিংয়ের মধ্যে a.b প্যাটার্ন মিলবে না কারণ ডট (.) নতুন লাইন \n এর সাথে মেলে না।
. (ডট) এর সাথে অন্যান্য মেটাচরিত্রের সমন্বয়
ডট (.) সাধারণত অন্যান্য মেটাচরিত্রের সাথে মিলিয়ে আরো জটিল প্যাটার্ন তৈরি করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, .* প্যাটার্নটি শূন্য বা একাধিক যেকোনো চরিত্রের সাথে মেলে।
উদাহরণ:
let regex = /a.*b/;
let str = "abc";
console.log(regex.test(str)); // true
এখানে, .* প্যাটার্নটি "a" এবং "b" এর মধ্যে যেকোনো চরিত্র (শূন্য বা একাধিক) মিলিয়ে স্ট্রিং "abc" এর সাথে মিলে যাচ্ছে।
. (ডট) এবং ফ্ল্যাগের সংমিশ্রণ
যদি আপনি ডট (.) এর সাহায্যে নতুন লাইনও মেলাতে চান, তাহলে s ফ্ল্যাগ ব্যবহার করতে হবে। এটি ডট (.) কে নতুন লাইন সহ যেকোনো চরিত্র হিসেবে বিবেচনা করবে।
উদাহরণ:
let regex = /a.b/s;
let str = "a\nb";
console.log(regex.test(str)); // true
এখানে, s ফ্ল্যাগের কারণে ডট (.) নতুন লাইন সহ যেকোনো চরিত্রের সাথে মেলাতে সক্ষম হচ্ছে, এবং a\nb স্ট্রিংয়ের সাথে মিলছে।
সারাংশ
RegExp-এ . (ডট) মেটাচরিত্রটি যেকোনো একটি চরিত্র (নতুন লাইন ছাড়া) মেলানোর জন্য ব্যবহৃত হয়। এটি খুবই শক্তিশালী এবং সাধারণত স্ট্রিংয়ের মধ্যে বিভিন্ন ধরনের অক্ষরের মিল খুঁজতে সাহায্য করে। যদি নতুন লাইনও মেলাতে চান, তবে s (dotall) ফ্ল্যাগ ব্যবহার করতে হবে।
JavaScript এর RegExp প্যাটার্নে \d মেটাচরিত্র (metacharacter) ব্যবহার করা হয় যেকোনো একক সংখ্যা বা ডিজিট মেলাতে। এটি ০ থেকে ৯ পর্যন্ত যেকোনো একটি সংখ্যা নির্দেশ করে।
\d এর ব্যবহার
/d/ প্যাটার্নটি একক সংখ্যা মেলাতে ব্যবহৃত হয়, অর্থাৎ এটি ০, ১, ২, ৩, ৪, ৫, ৬, ৭, ৮ বা ৯ এর মধ্যে কোনো একটি সংখ্যাকে মেলাবে।
উদাহরণ:
let regex = /\d/;
let str = "There are 5 apples.";
console.log(regex.test(str)); // true
এখানে, \d প্যাটার্নটি "5" (সংখ্যা) মেলাবে এবং test() মেথডের মাধ্যমে এটি পরীক্ষা করা হয় যে স্ট্রিংয়ে কোনো সংখ্যা রয়েছে কিনা।
\d এর বর্ধিত ব্যবহার
একাধিক ডিজিট মেলানো
যখন আপনি একাধিক সংখ্যা (ডিজিট) মেলাতে চান, তখন + অথবা {} কুয়েরি ব্যবহার করতে পারেন।
উদাহরণ:
let regex = /\d+/; // এক বা একাধিক সংখ্যা
let str = "My age is 25.";
console.log(str.match(regex)); // [ '25' ]
এখানে, \d+ প্যাটার্নটি স্ট্রিংয়ের মধ্যে এক বা একাধিক ডিজিট মেলাবে।
নির্দিষ্ট সংখ্যক ডিজিট মেলানো
যদি আপনি একটি নির্দিষ্ট সংখ্যক ডিজিট মেলাতে চান, তবে {} ব্যবহার করতে পারেন।
উদাহরণ:
let regex = /\d{3}/; // ঠিক ৩টি ডিজিট
let str = "My number is 1234.";
console.log(str.match(regex)); // [ '123' ]
এখানে, \d{3} প্যাটার্নটি স্ট্রিংয়ের মধ্যে প্রথম ৩টি ডিজিটকে মেলাবে।
\d এর বিপরীত
যদি আপনি সংখ্যার বদলে কিছু যা সংখ্যা নয় খুঁজতে চান, তবে আপনি \D (বড় D) ব্যবহার করতে পারেন। এটি সংখ্যা ছাড়া সবকিছু নির্দেশ করে।
উদাহরণ:
let regex = /\D/;
let str = "123abc";
console.log(str.match(regex)); // [ 'a' ]
এখানে, \D প্যাটার্নটি প্রথম non-digit চরিত্র "a" মেলাবে।
সারাংশ
JavaScript এর RegExp এ \d মেটাচরিত্রটি যেকোনো একক ডিজিট (০ থেকে ৯) মেলাতে ব্যবহৃত হয়। এটি সাধারণত সংখ্যা সনাক্ত করতে, একাধিক সংখ্যা মেলাতে, অথবা নির্দিষ্ট সংখ্যক ডিজিট খুঁজে বের করতে ব্যবহার করা হয়। \d এর বিপরীতে \D ব্যবহার করে সংখ্যা ছাড়া অন্য চরিত্রগুলো খুঁজে পাওয়া যায়।
RegExp প্যাটার্নে \w মেটাচরিত্রটি এমন ওয়ার্ড ক্যারেক্টার ম্যাচ করতে ব্যবহৃত হয়, যা হলো অক্ষর, সংখ্যা অথবা আন্ডারস্কোর (_)। এটি একটি শর্তযুক্ত মেটাচরিত্র যা সাধারণত একটি বা একাধিক অক্ষরের জন্য ব্যবহৃত হয়।
\w এর ব্যবহার
\w স্ট্রিংয়ের মধ্যে কোনো ওয়ার্ড ক্যারেক্টার যেমন এলফাবেট (A-Z, a-z), সংখ্যা (0-9), এবং আন্ডারস্কোর (_) মেলে। এর মধ্যে বিশেষ কোনো সীমাবদ্ধতা থাকে না, অর্থাৎ, এটি সাধারণত কেস-সেনসিটিভ এবং শুধুমাত্র এ ধরনের চরিত্রের সাথেই মেলে।
উদাহরণ:
let regex = /\w+/;
let str = "Hello_world123";
console.log(regex.test(str)); // true
এখানে, \w+ প্যাটার্নটি স্ট্রিং "Hello_world123" এর মধ্যে প্রথম অংশ "Hello_world123" পুরো অংশটি মেলাচ্ছে, কারণ এটি সমস্ত বৈধ ওয়ার্ড ক্যারেক্টার ধারণ করছে (অক্ষর, সংখ্যা এবং আন্ডারস্কোর)।
\w এর সাথে অন্যান্য মেটাচরিত্রের ব্যবহার
এক বা একাধিক ওয়ার্ড ক্যারেক্টার
+ চিহ্ন ব্যবহার করলে এক বা একাধিক ওয়ার্ড ক্যারেক্টার মেলানো যাবে।
let regex = /\w+/;
let str = "abc123";
console.log(regex.test(str)); // true
একক ওয়ার্ড ক্যারেক্টার
\w একক চরিত্রের সাথে মিলবে, অর্থাৎ এটি শুধুমাত্র একটি অক্ষর, সংখ্যা বা আন্ডারস্কোর মেলাতে সক্ষম হবে।
let regex = /\w/;
let str = "abc";
console.log(regex.test(str)); // true
\w এর সীমাবদ্ধতা
\wশুধুমাত্র ল্যাটিন অক্ষর (A-Z, a-z), সংখ্যা (0-9), এবং আন্ডারস্কোর (_) সমর্থন করে। এর মধ্যে স্পেস, বিশেষ চিহ্ন (যেমন @, #, $, %, &, ইত্যাদি), বা অক্ষরভিত্তিক ভাষার অক্ষর (যেমন বাংলা বা আরবি অক্ষর) মেলানো হয় না।
উদাহরণ:
let regex = /\w+/;
let str = "hello@world";
console.log(regex.test(str)); // false
এখানে, \w+ "hello@world" স্ট্রিংয়ের মধ্যে @ চিহ্নের কারণে মিল খুঁজে পাচ্ছে না, কারণ এটি একটি বিশেষ চিহ্ন এবং \w শুধুমাত্র অক্ষর, সংখ্যা এবং আন্ডারস্কোরের সাথে মেলে।
সারাংশ
\w RegExp মেটাচরিত্রটি যেকোনো ওয়ার্ড ক্যারেক্টার (অক্ষর, সংখ্যা বা আন্ডারস্কোর) মেলাতে ব্যবহৃত হয়। এটি A-Z, a-z, 0-9, এবং _ (আন্ডারস্কোর) সহ যেকোনো বৈধ ওয়ার্ড ক্যারেক্টারের জন্য কাজ করে। এটি সাধারণত একক বা একাধিক অক্ষরের জন্য ব্যবহৃত হয়, এবং স্পেস বা বিশেষ চিহ্ন এর সাথে মেলে না।
RegExp-এ \s মেটাচরিত্রটি স্পেস, ট্যাব, এবং লাইন ব্রেক (newline) এর মতো সাদা স্থান (whitespace) চরিত্রগুলির সাথে মেলে। এটি খুবই কার্যকর যখন আপনি স্পেস বা কোনো অপ্রকাশিত অক্ষর (যেমন ট্যাব বা নতুন লাইন) খুঁজে বের করতে চান।
\s এর ব্যবহার
\s প্যাটার্নটি সাধারণত স্ট্রিংয়ের মধ্যে যেকোনো সাদা স্থান (whitespace) খুঁজে বের করতে ব্যবহৃত হয়। এটি স্পেস, ট্যাব, লাইন ব্রেক (newline), এবং রিটার্ন ক্যারেজ (carriage return) সহ অন্যান্য সাদা স্থান চরিত্রের সাথে মেলে।
সিনট্যাক্স:
let regex = /\s/;
এখানে, \s যেকোনো ধরনের সাদা স্থান চরিত্রের সাথে মেলে। যেমন:
- স্পেস (space)
- ট্যাব (tab)
- নতুন লাইন (newline)
- রিটার্ন ক্যারেজ (carriage return)
\s এর ব্যবহার উদাহরণ
স্পেস:
let regex = /\s/;
let str = "hello world";
console.log(regex.test(str)); // true
এখানে, \s প্যাটার্নটি "hello world" স্ট্রিংয়ের মধ্যে স্পেস খুঁজে পাচ্ছে এবং মিলছে।
ট্যাব:
let regex = /\s/;
let str = "hello\tworld";
console.log(regex.test(str)); // true
এখানে, \s প্যাটার্নটি স্ট্রিং hello\tworld এর মধ্যে ট্যাব (tab) চরিত্র খুঁজে পাচ্ছে এবং মিলছে।
নতুন লাইন (newline):
let regex = /\s/;
let str = "hello\nworld";
console.log(regex.test(str)); // true
এখানে, \s প্যাটার্নটি স্ট্রিং hello\nworld এর মধ্যে নতুন লাইন (newline) খুঁজে পাচ্ছে এবং মিলছে।
\s এবং অন্যান্য মেটাচারিত্রের সাথে ব্যবহৃত
আপনি যখন \s ব্যবহার করেন, তখন এটি অন্যান্য মেটাচারিত্রের সাথে মিলিয়ে আরও শক্তিশালী প্যাটার্ন তৈরি করতে পারে।
উদাহরণ: স্পেসের পরে একটি সংখ্যা খোঁজা:
let regex = /\s\d+/;
let str = "hello 123";
console.log(regex.test(str)); // true
এখানে, \s\d+ প্যাটার্নটি প্রথমে একটি স্পেস এবং তারপরে এক বা একাধিক ডিজিট খুঁজে পাচ্ছে। "hello 123" স্ট্রিংয়ে এটি মিলছে।
^\s এবং \s$ এর ব্যবহার
আপনি ^ এবং $ মেটাচারিত্রের সাথে \s ব্যবহার করে স্ট্রিংয়ের শুরু বা শেষের সাদা স্থান খুঁজেও পরীক্ষা করতে পারেন।
উদাহরণ: স্ট্রিংয়ের শুরুতে সাদা স্থান (whitespace) খোঁজা:
let regex = /^\s/;
let str = " hello";
console.log(regex.test(str)); // true
এখানে, ^\s প্যাটার্নটি স্ট্রিংয়ের শুরুতে একটি স্পেস খুঁজে পাচ্ছে।
উদাহরণ: স্ট্রিংয়ের শেষে সাদা স্থান (whitespace) খোঁজা:
let regex = /\s$/;
let str = "hello ";
console.log(regex.test(str)); // true
এখানে, \s$ প্যাটার্নটি স্ট্রিংয়ের শেষে একটি স্পেস খুঁজে পাচ্ছে।
\s এবং \S
\s হল সাদা স্থান (whitespace) চরিত্রের সাথে মেলানোর জন্য, আর \S এর বিপরীত, যা সাদা স্থান (whitespace) ছাড়া অন্য যেকোনো চরিত্রের সাথে মেলে।
উদাহরণ:
let regex = /\S/;
let str = " hello";
console.log(regex.test(str)); // true
এখানে, \S প্যাটার্নটি "hello" শব্দের প্রথম অক্ষর "h" এর সাথে মেলে, কারণ এটি সাদা স্থান ছাড়াই যেকোনো চরিত্রের সাথে মেলে।
সারাংশ
\s RegExp মেটাচারিত্রটি যেকোনো স্পেস, ট্যাব, লাইন ব্রেক (newline) বা অন্যান্য সাদা স্থান চরিত্রের সাথে মেলে। এটি স্ট্রিংয়ের মধ্যে সাদা স্থান খুঁজে বের করতে অত্যন্ত কার্যকর। আপনি যদি সাদা স্থান ছাড়া অন্যান্য চরিত্র খুঁজতে চান, তবে \S ব্যবহার করতে পারেন।
JavaScript এ RegExp প্যাটার্নে কিছু মেটাচারিত্র রয়েছে, যা চরিত্রগুলোর উল্টো (inverse) মিল খুঁজে বের করতে ব্যবহৃত হয়। এই মেটাচারিত্রগুলি মূলত নির্দিষ্ট ক্যাটেগরির বাইরে থাকা চরিত্রগুলোকে মেলাতে ব্যবহৃত হয়। এগুলি হলো \D, \W, এবং \S।
\D: ডিজিটের বাইরের ক্যারেক্টার
\D প্যাটার্নটি ডিজিট (0-9) ছাড়া যেকোনো একটি চরিত্রের সাথে মেলে। এটি \d (ডিজিট) প্যাটার্নের বিপরীত, যা শুধুমাত্র ডিজিটকে মেলে।
সিনট্যাক্স:
let regex = /\D/;
এখানে, \D প্যাটার্নটি যেকোনো ডিজিট ছাড়া একক চরিত্র মেলে। অর্থাৎ, \D এমন কোনো চরিত্রের জন্য কাজ করবে যা ডিজিট নয়।
উদাহরণ:
let regex = /\D/;
let str = "123abc";
console.log(regex.test(str)); // true
এখানে, \D স্ট্রিং "123abc"-এর মধ্যে "a", "b", "c" ইত্যাদি যেকোনো অক্ষরের সাথে মিলবে, কারণ এগুলো ডিজিট নয়।
\W: অক্ষর, সংখ্যা, অথবা আন্ডারস্কোরের বাইরের ক্যারেক্টার
\W প্যাটার্নটি অক্ষর (a-z, A-Z), সংখ্যা (0-9) এবং আন্ডারস্কোর (_) ছাড়া যেকোনো একটি চরিত্রের সাথে মেলে। এটি \w (অক্ষর, সংখ্যা এবং আন্ডারস্কোর) প্যাটার্নের বিপরীত।
সিনট্যাক্স:
let regex = /\W/;
এখানে, \W প্যাটার্নটি এমন কোনো চরিত্র খুঁজে বের করবে যা অক্ষর, সংখ্যা অথবা আন্ডারস্কোরের মধ্যে পড়ে না। এর মধ্যে থাকে পাংকচুয়েশন (যেমন, !, @, #), স্পেস, এবং অন্যান্য বিশেষ চিহ্ন।
উদাহরণ:
let regex = /\W/;
let str = "hello world!";
console.log(regex.test(str)); // true
এখানে, \W স্ট্রিং "hello world!"-এর মধ্যে " " (স্পেস) এবং "!" (বিশেষ চিহ্ন) এর সাথে মিলবে, কারণ এগুলো অক্ষর বা সংখ্যা নয়।
\S: স্পেস ছাড়া অন্য যেকোনো চরিত্র
\S প্যাটার্নটি স্পেস ছাড়া যেকোনো একটি চরিত্রের সাথে মেলে। এটি \s (স্পেস, ট্যাব, নতুন লাইন ইত্যাদি) প্যাটার্নের বিপরীত।
সিনট্যাক্স:
let regex = /\S/;
এখানে, \S প্যাটার্নটি যেকোনো চরিত্রের জন্য কাজ করবে যা স্পেস নয়। এটি অক্ষর, সংখ্যা, বিশেষ চিহ্ন ইত্যাদি সমস্ত কিছু মেলাতে পারে।
উদাহরণ:
let regex = /\S/;
let str = " hello ";
console.log(regex.test(str)); // true
এখানে, \S প্যাটার্নটি স্ট্রিং " hello " এর মধ্যে "h", "e", "l", "l", "o" সহ কোনো স্পেস ছাড়া চরিত্র মেলাবে।
সারাংশ
JavaScript এর RegExp এ \D, \W, এবং \S মেটাচারিত্রগুলো উল্টো প্রভাবিত (inverse) মেলানো প্যাটার্ন। এগুলোর ব্যবহার:
- \D: ডিজিটের বাইরে যেকোনো চরিত্র (অর্থাৎ, 0-9 ছাড়া) মেলে।
- \W: অক্ষর, সংখ্যা এবং আন্ডারস্কোর ছাড়া যেকোনো চরিত্র মেলে।
- \S: স্পেস ছাড়া যেকোনো চরিত্র মেলে।
এগুলি স্ট্রিংয়ের নির্দিষ্ট অংশ খুঁজে বের করতে খুবই কার্যকর এবং সহজে ব্যবহারযোগ্য।
Read more