PHP'де регулярдык туюнтмаларды колдонууну оптималдаштыруу

Регулярдык туюнтмалар өтө оор жана салыштырмалуу жай иштей турган нерсе. Альтернативдүү чечим бар болгондо, аны колдонууну сунуш кылабыз.

Мисал менен карап көрөлү. Кандайдыр бир сап ! белгисинен башталабы же жокпу, текшерүү керек болсун. Бир программачы бул маселени регулярдык туюнтма аркылуу чечкен:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'ооба';
  } else {
    echo 'жок';
  }
?>

Бирок, мындай маселе андан да тез иштеген чечимге ээ:

php<?php
  if ($str[0] == '!') {
    echo 'ооба';
  } else {
    echo 'жок';
  }
?>

Регулярдык туюнтмалар өтө оор жана салыштырмалуу жай иштеген нерсе. Альтернативдүү чечим бар болгон ар дайым, аны колдонууну сунуш кылабыз.

Задание 1

Төмөнкү коддо бир программачы сапта '333' подсабы барбы же жокпу текшерет. Бул программачынын чечимин оптималдаштырыңыз.

Мына код:

php<?php
  $str = '1233345';
  
  if (preg_match('#333#', $str)) {
    echo 'бар';
  } else {
    echo 'жок';
  }
?>
Задание 2

Төмөнкү коддо бир программачы сап .html менен бүтөбү же бүтпөбү текшерет. Бул программачынын чечимин оптималдаштырыңыз.

Мына код:

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

Сат .png же .jpg менен бүтөбү же бүтпөбү текшерген код жазыңыз.