как заменить
Apple 123456
в
Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6
по php pcre?
Модифицированная версия регулярного выражения Богдана с использованием негативного прогноза.
Замените номер на "number|Apple "
если он не является последним символом в строке.
<? $string = "Apple 123456"; echo preg_replace('/([0-9])(?!$)/', '$1|Apple ', $string); ?>
Ouput: Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6
С этим вы частично получаете то, что хотите:
<?php echo preg_replace('/([0-9])/', 'Apple $1|', 'Apple 123456');
Это приводит к: Apple Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6|
Для удаления первого «Apple» вы можете str_replace()
или explode()
исходную строку, что приведет к чему-то вроде
<?php $string = 'Apple 123456'; $string = str_replace("Apple", "", $string); echo preg_replace('/([0-9])/', 'Apple $1|', $string);
Результат: Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6|
, Вы можете удалить последний канал, используя substr($result, 0, -1)
.
Окончательный код будет выглядеть так:
<?php $string = 'Apple 123456'; $string = str_replace("Apple", "", $string); $regex = preg_replace('/([0-9])/', 'Apple $1|', $string); echo substr($regex, 0, -1);