Optimizacija uporabe regularnih izrazov v PHP

Regularni izrazi so zelo zahtevna in razmeroma počasna stvar. Kadar obstaja alternativna rešitev, je zaželeno uporabiti prav to.

Poglejmo si primer. Recimo, da želimo preveriti, ali se nek niz začne z klicajem. Nek programer je to nalogo rešil z regularnim izrazom:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'da';
  } else {
    echo 'ne';
  }
?>

Vendar ima taka naloga veliko hitrejšo rešitev:

php<?php
  if ($str[0] == '!') {
    echo 'da';
  } else {
    echo 'ne';
  }
?>

Regularni izrazi so zelo zahtevna in razmeroma počasna stvar. Vedno, kadar obstaja alternativna rešitev, je zaželeno uporabiti prav to.

Задание 1

V naslednji kodi nek programer preverja, ali niz vsebuje podniz '333'. Optimizirajte rešitev tega programerja.

Tu je koda:

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

V naslednji kodi nek programer preverja, ali se niz konča z .html. Optimizirajte rešitev tega programerja.

Tu je koda:

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

Napišite kodo, ki bo preverila, ali se niz konča z .png ali z .jpg.