Optimasi Penggunaan Ekspresi Reguler di PHP

Ekspresi reguler adalah sesuatu yang sangat berat dan relatif lambat kinerjanya. Ketika ada solusi alternatif, sebaiknya gunakan solusi alternatif tersebut.

Mari kita lihat sebuah contoh. Misalkan kita perlu memeriksa apakah sebuah string diawali dengan tanda seru. Seorang programmer menyelesaikan tugas ini dengan ekspresi reguler:

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

Namun, tugas seperti ini memiliki solusi yang berjalan jauh lebih cepat:

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

Ekspresi reguler adalah sesuatu yang sangat berat dan relatif lambat kinerjanya. Setiap kali ada solusi alternatif, sebaiknya gunakan solusi alternatif tersebut.

Задание 1

Pada kode berikut, seorang programmer memeriksa apakah dalam sebuah string terdapat substring '333'. Optimalkan solusi programmer ini.

Berikut kodenya:

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

Pada kode berikut, seorang programmer memeriksa apakah sebuah string diakhiri dengan .html. Optimalkan solusi programmer ini.

Berikut kodenya:

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

Tuliskan kode yang akan memeriksa, apakah sebuah string diakhiri dengan .png atau dengan .jpg.