Регулярдык туюнтмалардагы символдор топтомунун терс теске салуусу
Квадрат кашаанын башындагы ^ белгиси менен каалаган нерсени терске айландырса болот. Башкача айтканда, эгерде, мисалы, [ab] буйругу 'a' же 'b' тамгасын издесе, анда [^ab] буйругу 'a' жана 'b' тамгаларынан башка бардык символдорду издешет.
Мисал
Бул мисалда издеш үчүн үлгү төмөнкүдөй көрүнөт:
'x' тамгасы, андан кийин 'a' тамгасы эмес,
'b' тамгасы эмес жана 'c' тамгасы эмес, андан кийин 'z' тамгасы:
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Натыйжада өзгөрмөгө төмөнкүдөй сап жазылат:
'xaz xbz xcz !'
Мисал
Бул мисалда издеш үчүн үлгү төмөнкүдөй көрүнөт:
'x' тамгасы, андан кийин кичине латын тамгасы эмес,
андан кийин 'z' тамгасы:
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Натыйжада өзгөрмөгө төмөнкүдөй сап жазылат:
'xaz xbz ! !'
Практикалык тапшырмалар
Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз:
'1' саны, андан кийин 'e' эмес жана
'x' эмес символ, андан кийин '2' саны.
Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз:
'x' тамгасы, андан кийин 2 ден 7 ге чейинки сан эмес,
'z' тамгасы.
Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз:
'x' тамгасы, андан кийин чоң латын тамгасы эмес 1 же андан көп жолу,
'z' тамгасы.
Төмөнкү үлгү боюнча саптарды таба турган регулярдык туюнтма жазыңыз:
'x' тамгасы, андан кийин чоң латын тамгасы эмес, кичине латын тамгасы эмес жана 1 ден 5 ге чейинки сан эмес 1 же андан көп жолу,
'z' тамгасы.