JavaScript-এ রেগুলার এক্সপ্রেশনের g (global) ফ্ল্যাগ ব্যবহার করে স্ট্রিংয়ে একাধিকবার আসা প্যাটার্নের সব ম্যাচ বের করা যায়।
সিনট্যাক্স
string.match(/pattern/g)
উদাহরণ
function findMultipleOccurrences(sentence) {
// 'JavaScript' বা 'typescript' で始まる単語 (大文字小文字区別なし)
var regex = /(JavaScript?[^\s]+)|(typescript?[^\s]+)/gi;
return sentence.match(regex);
}
var text = "This is my first JavaScript Program which is the subset of typescript";
console.log("টেক্সট: " + text);
console.log("ম্যাচগুলো:", findMultipleOccurrences(text));
চলানোর পদ্ধতি
- কোডটি
multiMatch.jsনামে সংরক্ষণ করুন। - টার্মিনালে চালান:
node multiMatch.js
আউটপুট
টেক্সট: This is my first JavaScript Program which is the subset of typescript
ম্যাচগুলো: [ 'JavaScript', 'typescript' ]
রেগেক্স ব্যাখ্যা
| প্যাটার্ন | অর্থ |
|---|---|
JavaScript? | 'JavaScript' বা 'Javascript' (s অপশনাল) |
[^\s]+ | স্পেস না হওয়া ক্যারেক্টার এক বা অধিকবার |
| | অথবা (OR) |
gi | g=global (সব ম্যাচ), i=case-insensitive |
আরো উদাহরণ
// সব ইমেইল বের করা
const emails = "Contact: a@b.com, x@y.org, test@domain.net".match(/[\w.]+@[\w.]+\.\w+/g);
// ['a@b.com', 'x@y.org', 'test@domain.net']
// সব সংখ্যা বের করা
const numbers = "Price: $100, Discount: 20%, Tax: 5.5".match(/\d+(\.\d+)?/g);
// ['100', '20', '5.5']
// matchAll() ব্যবহার (ES2020) - আরও ডিটেইলস
const matches = [...text.matchAll(/pattern/g)];
matches.forEach(m => console.log(m[0], "ইনডেক্স:", m.index));
সতর্কতা
- ম্যাচ না হলে `null` রিটার্ন হয় (অ্যারে না), তাই `|| []` ব্যবহার করুন।
- রেগেক্সে 스페シャル ক্যারেক্টার এস্কেপ করুন: `\. \* \+ \? \^ \$ \{ \} \( \) \[ \] \| \\`।
- পারফরম্যান্স: খুব জটিল রেগেক্স ক্যাটাস্ট্রোফিক ব্যাকট্র্যাকিং করতে পারে।