С помощью шляпки ^
в начале квадратных
скобок можно инвертировать желаемое. То есть,
если, к примеру, команда [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'
.