2010-07-16 74 views

回答

3

改良版。

將號碼替換爲"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

+0

的感謝!有用! – fukid 2010-07-16 11:52:50

1

有了這一個你會得到部分你想要什麼:

<?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);