Inverze znakových sad v regulárních výrazech

Pomocí stříšky ^ na začátku hranatých závorek lze invertovat požadovaný výraz. To znamená, že pokud například příkaz [ab] hledá písmeno 'a' nebo 'b', pak příkaz [^ab] bude hledat všechny znaky kromě 'a' a 'b'.

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: písmeno 'x', poté NE písmeno 'a', ne 'b' a ne 'c', pak písmeno 'z':

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

Výsledkem bude do proměnné zapsáno následující:

php'xaz xbz xcz !'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: písmeno 'x', poté NE malé latinské písmeno, pak písmeno 'z':

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

Výsledkem bude do proměnné zapsáno následující:

php'xaz xbz ! !'

Praktické úlohy

Задание 1

Napište regulární výraz, který najde řetězce podle vzoru: číslice '1', poté znak ne 'e' a ne 'x', číslice '2'.

Задание 2

Napište regulární výraz, který najde řetězce podle vzoru: písmeno 'x', poté NE číslice od 2 do 7, písmeno 'z'.

Задание 3

Napište regulární výraz, který najde řetězce podle vzoru: písmeno 'x', poté NE velké latinské písmeno od 1 a více krát, písmeno 'z'.

Задание 4

Napište regulární výraz, který najde řetězce podle vzoru: písmeno 'x', poté ne velké a ne malé latinské písmeno a ne číslice od 1 do 5 od 1 a více krát, písmeno 'z'.