PHP-da RegEx-lardan foydalanishni optimallashtirish

Muntazam ifodalar juda og'ir va nisbatan sekin ishlaydigan narsadir. Qachonki muqobil yechim mavjud bo'lsa, maqsadga muvofiq bo'lgani shundan foydalanishdir.

Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizga ma'lum bir satr undov belgisi bilan boshlanadimi yoki yo'qligini tekshirish kerak. Biron bir dasturchi bu muammoni regulyarka orqali hal qilgan:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'ha';
  } else {
    echo 'yo\'q';
  }
?>

Biroq, bunday vazifa ancha tezroq ishlaydigan yechimga ega:

php<?php
  if ($str[0] == '!') {
    echo 'ha';
  } else {
    echo 'yo\'q';
  }
?>

Regulyarkalar juda og'ir va nisbatan sekin ishlaydigan narsadir. Har doim, qachonki muqobil yechim mavjud bo'lsa, maqsadga muvofiq bo'lgani shundan foydalanishdir.

Задание 1

Quyidagi kodda biron bir dasturchi satrda '333' pastki satri bormi yo'qligini tekshirmoqda. Ushbu dasturchining yechimini optimallashtiring.

Mana kod:

php<?php
  $str = '1233345';
  
  if (preg_match('#333#', $str)) {
    echo 'bor';
  } else {
    echo 'yo\'q';
  }
?>
Задание 2

Quyidagi kodda biron bir dasturchi satr .html bilan tugaydimi yo'qligini tekshirmoqda. Ushbu dasturchining yechimini optimallashtiring.

Mana kod:

php<?php
  $str = 'index.html';
  
  if (preg_match('#\.html$#', $str)) {
    echo 'ha';
  } else {
    echo 'yo\'q';
  }
?>
Задание 3

.png yoki .jpg bilan tugaydigan satrni tekshiradigan kod yozing.