Optimalisatie van het gebruik van reguliere expressies in PHP

Reguliere expressies zijn een zeer zware en relatief traag werkend iets. Wanneer er een alternatieve oplossing is, is het wenselijk om deze te gebruiken.

Laten we een voorbeeld bekijken. Stel dat we moeten controleren of een bepaalde string begint met een uitroepteken. Een programmeur heeft deze taak opgelost met behulp van een reguliere expressie:

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

Echter, zo'n taak heeft een veel sneller werkende oplossing:

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

Reguliere expressies zijn een zeer zware en relatief traag werkend iets. Altijd, waar er een alternatieve oplossing is, is het wenselijk om deze te gebruiken.

Задание 1

In de volgende code controleert een programmeur of de string de substring '333' bevat. Optimaliseer de oplossing van deze programmeur.

Hier is de code:

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

In de volgende code controleert een programmeur of de string eindigt op .html. Optimaliseer de oplossing van deze programmeur.

Hier is de code:

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

Schrijf code die controleert of een string eindigt op .png of op .jpg.