Semnul caret în interiorul seturilor în expresiile regulate PHP
După cum știți, semnul caret în interiorul [] face
negație, atunci când este scris la începutul parantezelor.
Aceasta înseamnă că este un caracter special în interiorul
acestor paranteze. Pentru a obține caret-ul ca simbol,
trebuie fie să-l escapați, fie să-l mutați din prima poziție.
Exemplu
În următorul exemplu, modelul de căutare este:
primul caracter este orice în afară de 'd',
apoi două litere 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
În rezultat, în variabilă se va scrie următorul text:
'! ! ! dxx'
Exemplu
Iar acum modelul de căutare este: primul caracter
este 'd' sau '^', apoi două
litere 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
În rezultat, în variabilă se va scrie următorul text:
'axx bxx ! !'
Exemplu
Puteți să nu mutați caret-ul din prima poziție, ci pur și simplu să-l escapați folosind backslash-ul, și el va reprezenta însuși simbolul:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
În rezultat, în variabilă se va scrie următorul text:
'axx bxx ! !'
Sarcini practice
Este dat șirul:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Scrieți o expresie regulată care va găsi șirurile după modelul: caret sau arond, apoi două litere latine.
Este dat șirul:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Scrieți o expresie regulată care va găsi șirurile după modelul: NU caret și nu arond, apoi două litere latine.
Este dat șirul:
<?php
$str = '^xx axx ^zz bkk';
?>
Scrieți o expresie regulată care va găsi șirurile după modelul: NU caret, apoi două litere latine.