Regulaaravaldiste sissejuhatus PHP-s

Regulaaravaldised on käsud keerukateks otsinguteks ja asendusteks. Need võimaldavad teha väga huvitavaid asju, kuid kahjuks on nad üsna raskesti omandatavad.

PHP-s on mitu funktsiooni regulaaravaldistega töötamiseks. Tutvume nendega näite funktsioonist preg_replace. See funktsioon võtab esimese parameetrina, mida asendada, teise parameetrina - millega asendada, ja kolmanda parameetrina - stringi, milles asendada tuleb:

php<?php
  preg_replace(mida asendada, millega, string);
?>

Sel juhul ei võta meie funktsioon esimese parameetrina lihtsalt stringi, vaid regulaaravaldise, mis on käsude komplektiga string, paiknev kaldkriipsude sümbolite vahel #. Neid kaldkriipsu nimetatakse regulaaravaldiste eraldajateks.

Pärast eraldajaid võib kirjutada modifikaatoreid - käske, mis muudavad regulaaravaldise üldisi omadusi.

Regulaaravaldised ise koosnevad kahest sümbolitüübist: nendest, mis tähistavad iseennast, ja käsusümbolitest, mida nimetatakse erisümboliteks.

Tähed ja numbrid tähistavad iseennast. Järgmises näites asendame regulaaravaldise abil tähe 'a' tähega '!':

php<?php
  preg_replace('#a#', '!', 'bab'); // tagastab 'b!b'
?>

Kuid punkt on erisümbol ja tähistab suvalist sümbolit. Järgmises näites leiame stringi järgmise mustri järgi: täht 'x', seejärel suvaline sümbol, seejärel jälle täht 'x':

php<?php
  preg_replace('#x.x#', '!', 'xax eee'); // tagastab '! eee'
?>
Задание 1

Antud string:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

Kirjutage regulaaravaldis, mis leiab stringid 'ahb', 'acb', 'aeb' mustri järgi: täht 'a', suvaline sümbol, täht 'b'.

Задание 2

Antud string:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

Kirjutage regulaaravaldis, mis leiab stringid 'aeeb', 'adcb', 'axeb' mustri järgi: täht 'a', kaks suvalist sümbolit, täht 'b'.