জাভাস্ক্রিপ্টে রেগুলার এক্সপ্রেশনে exec মেথড

exec মেথডটি স্ট্রিং-এ অনুসন্ধান করে। এর ফলাফল হিসেবে পাওয়া যায় মিলে যাওয়া সাবস্ট্রিং এবং এর ক্যাপচার গ্রুপগুলি। একই সাথে, এই মেথডের প্রতিটি পরবর্তী কল সেই স্থান থেকে অনুসন্ধান শুরু করবে যেখানে আগে মিলে যাওয়া সাবস্ট্রিংটি শেষ হয়েছিল।

আসুন একটি উদাহরণ দেখি। ধরুন আমাদের নিম্নলিখিত স্ট্রিংটি আছে:

javascriptlet str = '12 34 56';

ধরুন আমাদের নিম্নলিখিত রেগুলার এক্সপ্রেশনটি আছে:

javascriptlet reg = /\d+/g;

আসুন আমরা আমাদের স্ট্রিংটির জন্য ক্রমিকভাবে আমাদের মেথডটি কল করি:

javascriptlet res1 = reg.exec(str);
console.log(res1[0]); // 12

let res2 = reg.exec(str);
console.log(res2[0]); // 34

let res3 = reg.exec(str);
console.log(res3[0]); // 56

তিনটি কলের পরে, যেহেতু আমাদের স্ট্রিংয়ে আর রেগুলার এক্সপ্রেশনের সাথে মিল নেই, পরবর্তী মেথড কলটি null ফেরত দেবে:

javascriptlet res4 = reg.exec(str);
console.log(res4); // null

মেথডের এই বৈশিষ্ট্যটি একটি লুপে ব্যবহার করা সুবিধাজনক:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res); // [12], [34], [56] 
}

শুধু মিলই নয়, এটিকে ক্যাপচার গ্রুপে ভাগ করেও পাওয়া যায়:

javascriptlet str = '12 34 56';
let reg = /(\d)(\d)/g;

let res;
while (res = reg.exec(str)) {
  console.log(res); // [12, 1, 2], [34, 3, 4], [56, 5, 6] 
}
Задание 1

নিম্নলিখিত স্ট্রিংটি দেওয়া আছে:

javascriptlet str = '12:37:57 15:48:58 17:59:59';

এতে সময় সহ সমস্ত সাবস্ট্রিং খুঁজে বের করুন এবং প্রতিটি পাওয়ার জন্য ঘন্টা, মিনিট এবং সেকেন্ড আলাদা ক্যাপচার গ্রুপে রাখুন।