Регулярдык туюнтмалардагы символдор топтомунун терс теске салуусу

Квадрат кашаанын башындагы ^ белгиси менен каалаган нерсени терске айландырса болот. Башкача айтканда, эгерде, мисалы, [ab] буйругу 'a' же 'b' тамгасын издесе, анда [^ab] буйругу 'a' жана 'b' тамгаларынан башка бардык символдорду издешет.

Мисал

Бул мисалда издеш үчүн үлгү төмөнкүдөй көрүнөт: 'x' тамгасы, андан кийин 'a' тамгасы эмес, 'b' тамгасы эмес жана 'c' тамгасы эмес, андан кийин 'z' тамгасы:

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

Натыйжада өзгөрмөгө төмөнкүдөй сап жазылат:

php'xaz xbz xcz !'

Мисал

Бул мисалда издеш үчүн үлгү төмөнкүдөй көрүнөт: 'x' тамгасы, андан кийин кичине латын тамгасы эмес, андан кийин 'z' тамгасы:

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

Натыйжада өзгөрмөгө төмөнкүдөй сап жазылат:

php'xaz xbz ! !'

Практикалык тапшырмалар

Задание 1

Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз: '1' саны, андан кийин 'e' эмес жана 'x' эмес символ, андан кийин '2' саны.

Задание 2

Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз: 'x' тамгасы, андан кийин 2 ден 7 ге чейинки сан эмес, 'z' тамгасы.

Задание 3

Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз: 'x' тамгасы, андан кийин чоң латын тамгасы эмес 1 же андан көп жолу, 'z' тамгасы.

Задание 4

Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз: 'x' тамгасы, андан кийин чоң латын тамгасы эмес, кичине латын тамгасы эмес жана 1 ден 5 ге чейинки сан эмес 1 же андан көп жолу, 'z' тамгасы.