Rakstzīmju kopu invertēšana regulārajās izteiksmēs

Izmantojot zīmi ^ kvadrātiekavu sākumā, var invertēt vēlamo. Tas ir, ja, piemēram, komanda [ab] meklē burtu 'a' vai 'b', tad komanda [^ab] meklēs visas rakstzīmes, izņemot 'a' un 'b'.

Piemērs

Šajā piemērā meklēšanas veidne izskatās šādi: burts 'x', tad NE burts 'a', ne 'b' un ne 'c', pēc tam burts 'z':

php<?php
  $str = 'xaz xbz xcz xez';
  $res = preg_replace('#x[^abc]z#', '!', $str);
?>

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'xaz xbz xcz !'

Piemērs

Šajā piemērā meklēšanas veidne izskatās šādi: burts 'x', tad NE mazais latīņu burts, pēc tam burts 'z':

php<?php
  $str = 'xaz xbz x1z xCz';
  $res = preg_replace('#x[^a-z]z#', '!', $str);
?>

Rezultātā mainīgajā tiks ierakstīts sekojošais:

php'xaz xbz ! !'

Praktiskie uzdevumi

Задание 1

Uzrakstiet regulāro izteiksmi, kas atradīs virknes pēc veidnes: cipars '1', tad rakstzīme ne 'e' un ne 'x', cipars '2'.

Задание 2

Uzrakstiet regulāro izteiksmi, kas atradīs virknes pēc veidnes: burts 'x', tad NE cipars no 2 līdz 7, burts 'z'.

Задание 3

Uzrakstiet regulāro izteiksmi, kas atradīs virknes pēc veidnes: burts 'x', tad NE lielais latīņu burts no 1 un vairāk reizes, burts 'z'.

Задание 4

Uzrakstiet regulāro izteiksmi, kas atradīs virknes pēc veidnes: burts 'x', tad ne lielais un ne mazais latīņu burts un ne cipars no 1 līdz 5 no 1 un vairāk reizes, burts 'z'.