PHP-ում ռեգուլյար արտահայտությունների օգտագործման օպտիմիզացիա

Ռեգուլյար արտահայտությունները շատ ծանր և համեմատաբար դանդաղ աշխատող բաներ են: Երբ այլընտրանքային լուծում կա, ցանկալի է օգտագործել հենց դա:

Դիտարկենք օրինակով: Ենթադրենք, մենք պետք է ստուգենք, արդյոք որոշակի տողը սկսվում է բացականչական նշանով: Ինչ-որ ծրագրավորող այս խնդիրը լուծել է ռեգուլյար արտահայտության միջոցով.

php<?php
  if (preg_match('#^!#', $str)) {
    echo 'այո';
  } else {
    echo 'ոչ';
  }
?>

Սակայն, նման խնդիրը ունի շատ ավելի արագ աշխատող լուծում.

php<?php
  if ($str[0] == '!') {
    echo 'այո';
  } else {
    echo 'ոչ';
  }
?>

Ռեգուլյար արտահայտությունները շատ ծանր և համեմատաբար դանդաղ աշխատող բաներ են: Միշտ, երբ այլընտրանքային լուծում կա, ցանկալի է օգտագործել հենց դա:

Задание 1

Հաջորդ կոդում ինչ-որ ծրագրավորող ստուգում է, արդյոք տողում կա '333' ենթատող: Լավացրեք այս ծրագրավորողի լուծումը:

Ահա կոդը.

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

Հաջորդ կոդում ինչ-որ ծրագրավորող ստուգում է, արդյոք տողը վերջանում է .html-ով: Լավացրեք այս ծրագրավորողի լուծումը:

Ահա կոդը.

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

Գրեք կոդ, որը կստուգի, արդյոք տողը վերջանում է .png-ով կամ .jpg-ով: