регулярное выражение php для преобразования строки с последующим номером в несколько строк, за которыми следует одна из цифр - PullRequest
1 голос
/ 16 июля 2010

как мне заменить

Apple 123456

на

Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6

на php pcre?

Ответы [ 2 ]

3 голосов
/ 16 июля 2010

Модифицированная версия регулярного выражения Богдана с использованием отрицательного взгляда.

Замените число на "number|Apple ", если это не последний символ в строке.

<?
$string = "Apple 123456";
echo preg_replace('/([0-9])(?!$)/', '$1|Apple ', $string);
?>

Выход: Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6

1 голос
/ 16 июля 2010

С этим вы получаете частично то, что вы хотите:

<?php
    echo preg_replace('/([0-9])/', 'Apple $1|', 'Apple 123456');

В результате: Apple Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6|

Для удаления первого «Яблока» вы можете 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...