রেগুলার এক্সপ্রেশন ব্যবহার করে PHP-তে ক্যাপচার গ্রুপ
ধরুন আমাদের কাছে একটি স্ট্রিং আছে যাতে একটি ডোমেইন রয়েছে:
<?php
$str = 'eee site.ru bbb';
?>
চলুন এই ডোমেইনটি খুঁজে বের করি এবং এটিকে বিভিন্ন অংশে বিভক্ত করি: ডোমেইনের নামকে এর জোন থেকে আলাদা করি। এটি করার জন্য আমরা রেগুলার এক্সপ্রেশনের বিশেষ ক্যাপচার গ্রুপ ব্যবহার করব।
ক্যাপচার গ্রুপ হল অ্যারোর উপাদান, যেখানে রেগুলার এক্সপ্রেশন দ্বারা পাওয়া অংশগুলি রাখা যায়। আমাদের ক্ষেত্রে, প্রথম ক্যাপচার গ্রুপে আমরা ডোমেইনের নাম রাখতে পারি, এবং দ্বিতীয়টিতে - এর জোন।
চলুন এটা করা যাক। প্রথমে একটি রেগুলার এক্সপ্রেশন লিখি, যা স্ট্রিংয়ে ডোমেইন খুঁজে পায়:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
চলুন এখন আমাদের রেগুলার এক্সপ্রেশনে নির্দেশ করি, কোন অংশগুলি কোন ক্যাপচার গ্রুপে যাবে। এটি বন্ধনী () এর সাহায্যে করা হয়। চলুন সেগুলি ব্যবহার করে রেগুলার এক্সপ্রেশনের সেই অংশটি আলাদা করি, যা ডোমেইনের নাম খোঁজে, এবং যে অংশটি ডোমেইন জোন খোঁজে:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
এখন preg_match ফাংশনে
তৃতীয় প্যারামিটার হিসাবে একটি ভেরিয়েবল (যেকোনো নাম) নির্দিষ্ট করি:
<?php
preg_match($reg, $str, $res);
?>
নির্দিষ্ট ভেরিয়েবলে পাওয়া ক্যাপচার গ্রুপ সহ একটি অ্যারে আসবে। এক্ষেত্রে, অ্যারের শূন্যতম উপাদানে পাওয়া স্ট্রিংটি থাকবে, প্রথম উপাদানে - প্রথম ক্যাপচার গ্রুপ, দ্বিতীয় উপাদানে - দ্বিতীয় ক্যাপচার গ্রুপ এবং এভাবেই চলবে:
<?php
preg_match($reg, $str, $res);
var_dump($res); // আউটপুট দেবে ['site.ru', 'site', 'ru']
?>
একটি তারিখ সহ একটি স্ট্রিং দেওয়া হয়েছে:
<?php
$str = '2025-12-31';
?>
বছর, মাস এবং দিন আলাদা আলাদা ক্যাপচার গ্রুপে রাখুন।
একটি ফাইলের নাম সহ একটি স্ট্রিং দেওয়া হয়েছে:
<?php
$str = 'index.html';
?>
ফাইলের নাম এবং এর এক্সটেনশন আলাদা আলাদা ক্যাপচার গ্রুপে রাখুন।