# Команда 'или' в регулярных выражениях 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'` любое количество раз.

←→
↑