Как в preg_replace задать два условия замены?

В функции preg_replace() в PHP можно задать два условия замены, используя регулярные выражения. Для этого необходимо использовать паттерн, который содержит оба условия, а также указать соответствующие замены.

Предположим, что вам необходимо заменить в строке все числа от 1 до 10 на слово "один", а все числа от 11 до 20 заменить на слово "двенадцать". Вот как это можно сделать с помощью preg_replace():

$input = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20";
$pattern = "/(1[0-9]|20|[1-9])/"; // Паттерн с двумя условиями
$replacement1 = "один"; // Замена для чисел от 1 до 10
$replacement2 = "двенадцать"; // Замена для чисел от 11 до 20

$result = preg_replace($pattern, "$replacement1$replacement2", $input);

echo $result;

В этом примере мы используем регулярное выражение (1[0-9]|20|[1-9]), которое содержит два условия:
- (1[0-9]) соответствует числам от 10 до 19;
- 20 соответствует числу 20;
- [1-9] соответствует числам от 1 до 9.

Квадратные скобки [ ] обозначают класс символов, а вертикальная черта | — оператор "или", который используется для объединения нескольких условий.

В самой функции preg_replace() мы указываем паттерн, замену для чисел от 1 до 10 ("один"), замену для чисел от 11 до 20 ("двенадцать") и исходную строку. Результат в данном случае будет "один один один один один один один один один один двенадцать двенадцать двенадцать двенадцать двенадцать двенадцать двенадцать двенадцать двенадцать двенадцать".

Это лишь пример, и вы можете изменять условия, паттерны и замены в соответствии с вашими задачами. Дополнительные сведения о регулярных выражениях в PHP вы можете найти в документации: https://www.php.net/manual/ru/book.regex.php