Otimização do uso de expressões regulares em PHP

Expressões regulares são algo muito pesado e relativamente lento. Quando existe uma solução alternativa, é preferível usá-la.

Vamos ver um exemplo. Suponha que precisamos verificar se uma determinada string começa com um ponto de exclamação. Um certo programador resolveu esta tarefa usando expressão regular:

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'sim';
  } else {
    echo 'não';
  }
?>

No entanto, essa tarefa tem uma solução muito mais rápida:

php<?php
  if ($str[0] == '!') {
    echo 'sim';
  } else {
    echo 'não';
  }
?>

Expressões regulares são algo muito pesado e relativamente lento. Sempre que houver uma solução alternativa, é preferível usá-la.

Задание 1

No código a seguir, um certo programador verifica se há uma substring '333' na string. Otimize a solução desse programador.

Aqui está o código:

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

No código a seguir, um certo programador verifica se a string termina com .html. Otimize a solução desse programador.

Aqui está o código:

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

Escreva um código que verifique se uma string termina com .png ou com .jpg.