Командата 'или' во регуларните изрази на PHP
Во оваа лекција ќе ја разгледаме командата
|, која претставува помоќна
варијанта на ИЛИ во споредба со
командата []. Оваа команда овозможува
да се подели регуларниот израз на неколку делови.
При тоа, бараната низа може да одговара или на еден
дел од регуларниот израз, или на друг. Ајде да
погледнеме на примери.
Пример
Во овој пример шаблонот за пребарување е: три
букви 'a' или три букви 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! abb'
Пример
Во овој пример шаблонот за пребарување е: три
букви 'a' или од 1 и повеќе
букви 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! ! axx'
Пример
Во овој пример шаблонот за пребарување е: една или повеќе букви или три цифри:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! 1 12 !'
Пример
Вертикалната линија може да го подели регуларниот израз не на два дела, туку на било кој број на делови:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! ddd'
Пример
Ако вертикалната линија се наоѓа внатре во кружни
загради, тогаш 'или' работи само внатре
во тие загради. За пример, ајде да ги најдеме низите
според следниов шаблон: на почетокот стои
или 'a', или 'b' еднаш или повеќе
пати, а потоа две букви 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Како резултат во променливата ќе се запише следново:
'! ! ! exx'
Практични задачи
Дадена е низата:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Напишете регуларен израз, кој ќе ги најде низите
според шаблонот: на краевите стојат букви 'a',
а помеѓу нив - или буквата 'e' било
колку пати или буквата 'x' било
колку пати.
Дадена е низата:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Напишете регуларен израз, кој ќе ги најде низите
според шаблонот: на краевите стојат букви 'a',
а помеѓу нив - или буквата 'e' два пати
или буквата 'x' било кој број пати.