Optimering af regex-brug i PHP

Regulære udtryk er en meget tung og relativt langsomt fungerende ting. Når der er en alternativ løsning, er det tilrådeligt at bruge netop den.

Lad os se på et eksempel. Antag, at vi skal kontrollere, om en bestemt streng starter med et udråbstegn. En programmør løste denne opgave med et regulært udtryk:

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

Imidlertid har en sådan opgave en meget hurtigere løsning:

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

Regulære udtryk er en meget tung og relativt langsomt fungerende ting. Altid, hvor der er en alternativ løsning, er det tilrådeligt at bruge netop den.

Задание 1

I følgende kode tjekker en programmør, om der er en understreng '333' i strengen. Optimer denne programmørs løsning.

Her er koden:

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

I følgende kode tjekker en programmør, om strengen slutter med .html. Optimer denne programmørs løsning.

Her er koden:

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

Skriv kode, der kontrollerer, om en streng slutter med .png eller med .jpg.