Reguliariųjų išraiškų naudojimo optimizavimas PHP

Reguliariosios išraiškos yra labai sunkus ir palyginti lėtai veikiantis dalykas. Kai yra alternatyvus sprendimas, pageidautina naudoti būtent jį.

Pažiūrėkime pavyzdžiu. Tarkime, mums reikia patikrinti, ar tam tikra eilutė prasideda šauktuku. Kažkoks programuotojas šią užduotį išsprendė naudodamas reguliariąją išraišką:

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

Tačiau, tokiai užduočiai yra daug greičiau veikiantis sprendimas:

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

Reguliariosios išraiškos yra labai sunkus ir palyginti lėtai veikiantis dalykas. Visada, kur yra alternatyvus sprendimas, pageidautina naudoti būtent jį.

Задание 1

Toliau pateiktame kode kažkoks programuotojas tikrina, ar eilutėje yra poeilutė '333'. Optimizuokite šio programuotojo sprendimą.

Štai kodas:

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

Toliau pateiktame kode kažkoks programuotojas tikrina, ar eilutė baigiasi .html. Optimizuokite šio programuotojo sprendimą.

Štai kodas:

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

Parašykite kodą, kuris tikrins, ar eilutė baigiasi .png arba .jpg.