RegExp-এর multiline matching বা মাল্টিলাইন ম্যাচিং হল একটি ফিচার যা আপনাকে স্ট্রিংয়ের বহু লাইনে প্যাটার্ন ম্যাচ করার সুবিধা দেয়। সাধারণত, RegExp-এর ^ (caret) এবং $ (dollar sign) চিহ্নগুলি স্ট্রিংয়ের শুরু এবং শেষ নির্দেশ করে, কিন্তু মাল্টিলাইন মুড সক্রিয় করলে এই চিহ্নগুলি স্ট্রিংয়ের প্রতিটি লাইনের শুরু এবং শেষ এর সাথে মেলাবে।
Multiline Matching কীভাবে কাজ করে?
JavaScript RegExp-এর ডিফল্ট আচরণ হলো ^ এবং $ চিহ্ন শুধুমাত্র পুরো স্ট্রিংয়ের শুরু এবং শেষের সাথে মিলবে। তবে যদি আপনি multiline matching ব্যবহার করেন, তাহলে এই চিহ্নগুলি প্রতিটি লাইনের শুরু এবং শেষের সাথে মিলবে। মাল্টিলাইন মুড সক্রিয় করতে m ফ্ল্যাগ ব্যবহার করতে হয়।
m ফ্ল্যাগ (Multiline Matching Flag)
মাল্টিলাইন মুডে প্যাটার্নটি লাইনের ভিতরের প্রথম এবং শেষ স্থানগুলোকে চেক করতে সক্ষম হয়। এই মুডটি সক্রিয় করতে, আপনাকে RegExp প্যাটার্নের সাথে m ফ্ল্যাগ যোগ করতে হবে।
সিনট্যাক্স:
let regex = /^pattern/m;
এখানে, ^ চিহ্নটি স্ট্রিংয়ের শুধুমাত্র প্রথম অংশ নয়, বরং প্রতিটি লাইনের প্রথম অংশের সাথে মিলবে। একইভাবে, $ চিহ্নটি প্রতিটি লাইনের শেষ অংশের সাথে মেলাবে।
উদাহরণ: ^ (Caret) চিহ্নের ব্যবহার
let regex = /^hello/m;
let str = `hello world
this is a test
hello again`;
console.log(regex.test(str)); // true
এখানে, ^hello প্যাটার্নটি প্রতিটি লাইনের শুরুতে "hello" খুঁজবে। তাই এটি "hello world" এবং "hello again" লাইনে মিলে যাবে।
উদাহরণ: $ (Dollar) চিহ্নের ব্যবহার
let regex = /world$/m;
let str = `hello world
this is a test
goodbye world`;
console.log(regex.test(str)); // true
এখানে, world$ প্যাটার্নটি প্রতিটি লাইনের শেষে "world" খুঁজবে। তাই এটি "hello world" এবং "goodbye world" লাইনে মিলে যাবে।
Multiline Matching এর ব্যবহার
^চিহ্ন: এটি প্রতিটি লাইনের শুরুতে মেলে। মাল্টিলাইন মুডে, এটি পুরো স্ট্রিংয়ের প্রথম অংশের পরিবর্তে প্রতিটি লাইনের প্রথম অংশে মিলবে।$চিহ্ন: এটি প্রতিটি লাইনের শেষে মেলে। মাল্টিলাইন মুডে, এটি পুরো স্ট্রিংয়ের শেষ অংশের পরিবর্তে প্রতিটি লাইনের শেষ অংশে মিলবে।
মাল্টিলাইন মুডের ব্যবহারিক প্রয়োগ
১. একাধিক লাইনে নির্দিষ্ট শব্দের শুরু খোঁজা:
let regex = /^test/m;
let str = `hello world
test first line
test second line
end of test`;
console.log(regex.test(str)); // true
২. একাধিক লাইনে নির্দিষ্ট শব্দের শেষ খোঁজা:
let regex = /test$/m;
let str = `start of test
middle of test
test at the end`;
console.log(regex.test(str)); // true
সারাংশ
Multiline matching RegExp-এ m ফ্ল্যাগ ব্যবহার করে স্ট্রিংয়ের প্রতিটি লাইনের শুরু এবং শেষ অংশে মিল খুঁজে পাওয়া যায়। এই ফিচারটি আপনাকে একাধিক লাইনের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে সাহায্য করে এবং এটি বিশেষ করে ^ এবং $ চিহ্নের আচরণ পরিবর্তন করে। m ফ্ল্যাগটি যুক্ত করলে, প্যাটার্নগুলি শুধু পুরো স্ট্রিংয়ের শুরু বা শেষে নয়, বরং প্রতিটি লাইনের শুরু এবং শেষেও মিলবে।
Read more