Invertovanie množín znakov v regulárnych výrazoch
Pomocou striešky ^ na začiatku hranatých
zátvoriek môžete invertovať požadované. To znamená,
ak napríklad príkaz [ab] hľadá
písmeno 'a' alebo 'b', potom príkaz
[^ab] bude hľadať všetky znaky, okrem
'a' a 'b'.
Príklad
V tomto príklade vyhľadávací vzor vyzerá takto:
písmeno 'x', potom NIE písmeno 'a',
nie 'b' a nie 'c', potom písmeno
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Výsledkom do premennej sa zapíše nasledovné:
'xaz xbz xcz !'
Príklad
V tomto príklade vyhľadávací vzor vyzerá takto:
písmeno 'x', potom NIE malé latinské
písmeno, potom písmeno 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Výsledkom do premennej sa zapíše nasledovné:
'xaz xbz ! !'
Praktické úlohy
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: číslica '1', potom znak
nie 'e' a nie 'x', číslica '2'.
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: písmeno 'x', potom NIE
číslica od 2 do 7, písmeno 'z'.
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: písmeno 'x', potom NIE
veľké latinské písmeno od 1 a viac
krát, písmeno 'z'.
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: písmeno 'x', potom nie
veľké a nie malé latinské písmeno a nie číslica
od 1 do 5 od 1 a viac
krát, písmeno 'z'.