Merkkijoukon kääntäminen säännöllisissä lausekkeissa
Caretta ^ hakasulkeiden alussa voidaan kääntää haluttu.
Toisin sanoen, jos esimerkiksi komento [ab] etsii
kirjainta 'a' tai 'b', niin komento
[^ab] etsii kaikki merkit paitsi
'a' ja 'b'.
Esimerkki
Tässä esimerkissä hakumalli näyttää tältä:
kirjain 'x', sitten EI kirjain 'a',
ei 'b' eikä 'c', sitten kirjain
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Tuloksena muuttujaan kirjoitetaan seuraava:
'xaz xbz xcz !'
Esimerkki
Tässä esimerkissä hakumalli näyttää tältä:
kirjain 'x', sitten EI pieni latinalainen
kirjain, sitten kirjain 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Tuloksena muuttujaan kirjoitetaan seuraava:
'xaz xbz ! !'
Käytännön tehtävät
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
mallin mukaan: numero '1', sitten merkki
ei 'e' eikä 'x', numero '2'.
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
mallin mukaan: kirjain 'x', sitten EI
numero 2:sta 7:ään, kirjain 'z'.
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
mallin mukaan: kirjain 'x', sitten EI
suuri latinalainen kirjain 1 tai useamman
kerran, kirjain 'z'.
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
mallin mukaan: kirjain 'x', sitten ei
suuri eikä pieni latinalainen kirjain eikä numero
1:stä 5:een 1 tai useamman
kerran, kirjain 'z'.