Optimización del uso de expresiones regulares en PHP

Las expresiones regulares son algo muy pesado y relativamente lento. Cuando existe una solución alternativa, es recomendable usarla.

Veamos un ejemplo. Supongamos que necesitamos verificar si una determinada cadena comienza con un signo de exclamación. Un programador resolvió esta tarea mediante una expresión regular:

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

Sin embargo, esta tarea tiene una solución mucho más rápida:

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

Las expresiones regulares son algo muy pesado y relativamente lento. Siempre que exista una solución alternativa, es recomendable usarla.

Задание 1

En el siguiente código, un programador verifica si existe la subcadena '333' en una cadena. Optimice la solución de este programador.

Aquí está el código:

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

En el siguiente código, un programador verifica si la cadena termina en .html. Optimice la solución de este programador.

Aquí está el código:

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

Escriba un código que verifique si una cadena termina en .png o en .jpg.