Optimering av regex-användning i PHP

Reguljära uttryck är en mycket tung och relativt långsam funktion. När det finns ett alternativt sätt, bör man använda det istället.

Låt oss titta på ett exempel. Antag att vi behöver kontrollera om en viss sträng börjar med ett utropstecken. En programmerare löste detta problem med hjälp av regex:

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

Men detta problem har en mycket snabbare lösning:

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

Reguljära uttryck är en mycket tung och relativt långsam funktion. Alltid, när det finns ett alternativt sätt, bör man använda det istället.

Задание 1

I följande kod kontrollerar en programmerare om strängen innehåller delsträngen '333'. Optimera denna programmerares lösning.

Här är koden:

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

I följande kod kontrollerar en programmerare om strängen slutar med .html. Optimera denna programmerares lösning.

Här är koden:

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

Skriv kod som kontrollerar om en sträng slutar på .png eller på .jpg.