PHP-তে রেগুলার এক্সপ্রেশন পরিচিতি

রেগুলার এক্সপ্রেশন হল জটিল খোঁজ এবং প্রতিস্থাপনের জন্য কমান্ড। এগুলি খুব আকর্ষণীয় কাজ করতে দেয়, কিন্তু দুর্ভাগ্যবশত, এগুলি আয়ত্ত করা বেশ কঠিন।

রেগুলার এক্সপ্রেশন নিয়ে কাজ করার জন্য PHP-তে বেশ কয়েকটি ফাংশন রয়েছে। আমরা preg_replace ফাংশনের উদাহরণ দিয়ে এগুলির সাথে পরিচিত হব। এই ফাংশনটি প্রথম প্যারামিটার হিসেবে নেয় কী পরিবর্তন করতে হবে, দ্বিতীয় প্যারামিটার হিসেবে - কী দিয়ে পরিবর্তন করতে হবে, এবং তৃতীয় প্যারামিটার হিসেবে - যে স্ট্রিংটিতে পরিবর্তন করতে হবে:

php<?php
  preg_replace(কী পরিবর্তন করতে হবে, কী দিয়ে, স্ট্রিং);
?>

এক্ষেত্রে প্রথম প্যারামিটার হিসেবে আমাদের ফাংশনটি কেবল একটি স্ট্রিং নেয় না, বরং একটি রেগুলার এক্সপ্রেশন নেয়, যা হল হ্যাশ সিম্বল #-এর ভিতরে থাকা কমান্ডের সমন্বয়ে গঠিত একটি স্ট্রিং। এই হ্যাশ চিহ্নগুলিকে রেগুলার এক্সপ্রেশনের সীমাবদ্ধকারী বলা হয়।

সীমাবদ্ধকারীদের পরে মডিফায়ার লেখা যায় - এগুলি এমন কমান্ড যা রেগুলার এক্সপ্রেশনের সাধারণ বৈশিষ্ট্য পরিবর্তন করে।

রেগুলার এক্সপ্রেশনগুলি নিজেই দুই ধরনের ক্যারেক্টার নিয়ে গঠিত: যেগুলি নিজেদেরকে প্রতিনিধিত্ব করে এবং যেগুলি কমান্ড-ক্যারেক্টার, যাদেরকে বিশেষ ক্যারেক্টার বলা হয়।

অক্ষর এবং সংখ্যাগুলি নিজেদেরকে প্রতিনিধিত্ব করে। নিম্নলিখিত উদাহরণে আমরা রেগুলার এক্সপ্রেশন ব্যবহার করে 'a' অক্ষরটিকে '!' দিয়ে প্রতিস্থাপন করব:

php<?php
  preg_replace('#a#', '!', 'bab'); // ফেরত দেবে 'b!b'
?>

কিন্তু একটি ডট একটি বিশেষ ক্যারেক্টার এবং এটি যেকোনো ক্যারেক্টার বোঝায়। নিম্নলিখিত উদাহরণে আমরা এই প্যাটার্ন অনুসারে স্ট্রিংটি খুঁজে পাব: 'x' অক্ষর, তারপর যেকোনো ক্যারেক্টার, তারপর আবার 'x' অক্ষর:

php<?php
  preg_replace('#x.x#', '!', 'xax eee'); // ফেরত দেবে '! eee'
?>
Задание 1

একটি স্ট্রিং দেওয়া আছে:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

একটি রেগুলার এক্সপ্রেশন লিখুন যা স্ট্রিংগুলি 'ahb', 'acb', 'aeb' খুঁজে পাবে এই প্যাটার্ন অনুসারে: 'a' অক্ষর, যেকোনো ক্যারেক্টার, 'b' অক্ষর।

Задание 2

একটি স্ট্রিং দেওয়া আছে:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

একটি রেগুলার এক্সপ্রেশন লিখুন যা স্ট্রিংগুলি 'aeeb', 'adcb', 'axeb' খুঁজে পাবে এই প্যাটার্ন অনুসারে: 'a' অক্ষর, যেকোনো দুইটি ক্যারেক্টার, 'b' অক্ষর।