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
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
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
preg_replace('#x.x#', '!', 'xax eee'); // tagastab '! eee'
?>
Antud string:
<?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'.
Antud string:
<?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'.