Оптимизација употребе регуларних израза у PHP

Регуларни изрази су веома тешка и релативно спора ствар. Када постоји алтернативно решење, пожељно је користити управо њега.

Погледајмо на примеру. Претпоставимо да треба да проверимо да ли неки стринг почиње узвичником. Неки програмер је овај задатак решио преко регуларног израза:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'да';
  } else {
    echo 'не';
  }
?>

Међутим, овакав задатак има много брже решење:

php<?php
  if ($str[0] == '!') {
    echo 'да';
  } else {
    echo 'не';
  }
?>

Регуларни изрази су веома тешка и релативно спора ствар. Увек, где постоји алтернативно решење, пожељно је користити управо њега.

Задание 1

У следећем коду неки програмер проверava, да ли у стрингу постоји подстринг '333'. Оптимизујте решење овог програмера.

Ево кода:

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

У следећем коду неки програмер проверava, да ли стринг завршава на .html. Оптимизујте решење овог програмера.

Ево кода:

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

Напишите код који ће проверaвати да ли стринг завршава на .png или на .jpg.