Аптымізацыя выкарыстання рэгулярак у 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.