2011-11-24 28 views
0

除了整數,':'(遇到的第一個冒號)之外,我該如何在PHP中編寫preg_replace來刪除所有內容。preg_replace修剪除整數和:(冒號)

一個例子:

一(1)犬:四(4)貓共享飲料成本覈算USD0.40或40美分。

1:4

+1

歡迎來到StackOverflow。我建議你查看[faq]。我們在這裏幫助您解決代碼中的一些常見問題,而不是爲您編寫代碼。當你發佈問題時,通常**是一個好主意,也可以發佈**你已經嘗試**和**爲什麼(以及如何)它沒有按預期工作** –

+0

我不認爲你的例子是有道理的。 – alex

+0

如何處理同一行中的另一個冒號,應如何處理?例如'a1b:2:4c5'替換爲'1:2:45'還是替換爲'1:245'? – knittl

回答

1

下面是兩個例子:

$input = 'one (1) dog : four (4) cat sharing a drink costing USD0.40 or 40 cents.'; 
    $regex = '~.*?(?P<first>\d+).*?:.*?(?P<second>\d+).*~s'; 
    $result = preg_replace($regex, '$1:$2', $input); 

    echo $result; 

    if (preg_match($regex, $input, $matches)) { 
     $result = $matches['first'] .':'. $matches['second']; 
    } 

的preg_replace()和的preg_match()都將最終獲得相同的結果。