Ottimizzazione dell'uso delle espressioni regolari in PHP

Le espressioni regolari sono uno strumento molto pesante e relativamente lento. Quando esiste una soluzione alternativa, è preferibile utilizzare quella.

Vediamo un esempio. Supponiamo di dover verificare se una certa stringa inizia con un punto esclamativo. Un programmatore ha risolto questo problema utilizzando le regex:

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

Tuttavia, per questo problema esiste una soluzione molto più veloce:

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

Le regex sono uno strumento molto pesante e relativamente lento. Ogni volta che esiste una soluzione alternativa, è preferibile utilizzare quella.

Задание 1

Nel codice seguente, un programmatore verifica se nella stringa è presente la sottostringa '333'. Ottimizzate la soluzione di questo programmatore.

Ecco il codice:

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

Nel codice seguente, un programmatore verifica se la stringa termina con .html. Ottimizzate la soluzione di questo programmatore.

Ecco il codice:

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

Scrivete un codice che verifichi se una stringa termina con .png o con .jpg.