Сетови на знаци во регуларните изрази во PHP
Групите на знаци \d и \w не
се многу флексибилни. Дури и толку едноставна задача,
како најди ги сите букви, но не и бројките -
не може да се реши со нив. За вакви задачи
треба да се користат квадратни загради, кои претставуваат
операција ИЛИ.
Квадратните загради заменуваат еден знак,
кој било од наведените внатре. На пример,
вака: #x[abc]x# - ние велиме дека
на краевите мора да стојат букви x, а внатре
- еден знак: или 'a', или 'b',
или 'c'.
После квадратните загради може да се пишуваат оператори
за повторување. На пример, вака: #x[abc]+x#
- ние велиме дека внатре во x-овите може да има
која било количина на знаци 'a', 'b'
и 'c' - во кои било комбинации.
Може не само да се набројуваат знаци, туку да се создадат
групи на знаци, запишувајќи помеѓу два знака
цртичка. На пример, вака: #[a-d]#
- ги добиваме сите знаци од 'a' до
'd'.
Ајде да погледнеме на примери.
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било буква од 'a'
до 'z':
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! x@x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било буква од 'a'
до 'k':
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! xmx x@x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било буква од 'A'
до 'Z':
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'xax ! xcx x@x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било цифра од 0 до 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'xax ! ! ! x@x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било цифра од 3 до 7:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'xax x1x ! ! x@x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било буква од 'a'
до 'z' или цифра од 1 до 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! ! x@x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било буква од 'a'
до 'z' или буква од 'A' до
'Z':
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! x5x x@x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите која било буква од 'a'
до 'z' или цифри 1, 2:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! ! x3x'
Пример
Во овој пример шаблонот за пребарување изгледа вака:
помеѓу x-овите букви од 'a' до 'z'
во количество од 1 и повеќе:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'xx ! ! ! x123x xa3x'
Пример
Ајде да направиме така што количеството на букви може да биде и нула:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! x123x xa3x'
Практични задачи
Дадена е низа:
<?php
$str = 'aba aea aca aza axa';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - буква 'b', 'e'
или 'x'.
Дадена е низа:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - цифра од 3-ти до 6-ти.
Дадена е низа:
<?php
$str = 'aba aea afa aha aga';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - буква од a до g.
Дадена е низа:
<?php
$str = 'aba aea afa aha aga';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - буква од a до f и од j до z.
Дадена е низа:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - буква од a до f и од A до D.
Дадена е низа:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - мали латински букви,
без да ги допре останатите.
Дадена е низа:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - мали и големи латински
букви, без да ги допре останатите.
Дадена е низа:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Напишете регуларен израз, кој ќе најде според следниот
шаблон: на краевите стојат букви 'a',
а помеѓу нив - мали латински букви
и цифри, без да ги допре останатите.