Introducere în expresiile regulate în PHP
Expresiile regulate sunt comenzi pentru căutări și înlocuiri complexe. Acestea permit lucruri foarte interesante, dar, din păcate, sunt destul de greu de stăpânit.
Există mai multe funcții PHP pentru lucrul
cu expresii regulate. Vom începe să ne familiarizăm
cu ele folosind exemplul preg_replace. Această
funcție primește ca prim parametru ce să înlocuiască,
ca al doilea - cu ce să înlocuiască, iar ca al treilea parametru
- șirul în care trebuie făcută înlocuirea:
<?php
preg_replace(ce să înlocuiască, cu ce, șir);
?>
În acest caz, primul parametru al funcției noastre primește
nu doar un șir, ci o expresie regulată,
reprezentând un șir cu un set de comenzi,
plasate în interiorul simbolurilor diez #.
Aceste diezuri se numesc delimitatori
ai expresiilor regulate.
După delimitatori se pot scrie modificatori - comenzi care modifică proprietățile generale ale expresiei regulate.
Expresiile regulate în sine sunt formate din două tipuri de simboluri: din cele care se denotă pe ele însele și din simboluri-comandă, care se numesc caractere speciale.
Literele și cifrele se denotă pe ele însele. În următorul
exemplu vom înlocui litera 'a' cu '!'
folosind o expresie regulată:
<?php
preg_replace('#a#', '!', 'bab'); // va returna 'b!b'
?>
În schimb, punctul este un caracter special
și reprezintă orice caracter. În următorul
exemplu vom găsi șirul după următorul model:
litera 'x', apoi orice caracter, apoi
din nou litera 'x':
<?php
preg_replace('#x.x#', '!', 'xax eee'); // va returna '! eee'
?>
Este dat șirul:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Scrieți o expresie regulată care va găsi șirurile
'ahb', 'acb', 'aeb'
după modelul: litera 'a', orice caracter,
litera 'b'.
Este dat șirul:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Scrieți o expresie regulată care va găsi șirurile
'aeeb', 'adcb', 'axeb'
după modelul: litera 'a', două orice
caractere, litera 'b'.