Optimalisering av bruk av regulære uttrykk i PHP

Regulære uttrykk er veldig tunge og relativt tregt fungerende ting. Når det finnes en alternativ løsning, er det ønskelig å bruke nettopp den.

La oss se på et eksempel. Anta at vi må sjekke om en bestemt streng starter med et utropstegn. En programmerer løste denne oppgaven med et regulært uttrykk:

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

Imidlertid har en slik oppgave en mye raskere løsning:

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

Regulære uttrykk er veldig tunge og relativt tregt fungerende ting. Alltid, hvor det finnes en alternativ løsning, er det ønskelig å bruke nettopp den.

Задание 1

I følgende kode sjekker en programmerer om det finnes en delstreng '333' i strengen. Optimaliser løsningen til denne programmereren.

Her er koden:

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

I følgende kode sjekker en programmerer om strengen slutter med .html. Optimaliser løsningen til denne programmereren.

Her er koden:

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

Skriv kode som vil sjekke om strengen slutter på .png eller på .jpg.