2014-04-02 63 views
0

我得到這樣的字符串:Last Draw - 11 10 12 我需要用簡單的11.10.12替換Last Draw - 11 10 12。 所以我需要刪除「最後畫」的短語,並把數字之間的點。如何用php解析html代替字符串?

我嘗試了好幾次,並且得到了錯誤的結果或錯誤。

$result = preg_replace('LAST DRAW', "", $result); 

上次我試過這段代碼:$result = preg_replace('LAST DRAW', "", $result);沒有結果。

感謝您的任何建議!

+0

你的代碼示例沒有發生任何字符串或任何preg_replace/str_replace?到底有什麼好處呢?考慮編輯你的問題,並重點關注你想要對你的字符串做什麼。 –

回答

1

嘗試str_replace()

$string = "Last Draw - 11 10 12"; 
$var1 = str_replace("Last Draw - ", "", $string); 
$var2 = str_replace(" ", ".", $var1); 

echo $var2; 

結果會給你12年11月10日

+0

謝謝,但問題是,日期可能是任何不只是11 10 1 – user3467607

+0

@ user3467607會有什麼可能的日期?你可以編輯你的問題,並定義可以預期的日期格式? –

+0

@Andresch Serj日期格式:07 07 07(或任何其他值) 需要:07.07.07或07.01.01等 – user3467607

0

您正在使用preg_replace錯誤(無效模式)。

這樣做:

$result = preg_replace('/Last Draw - /', '', $result); 

或者乾脆使用字符串替換:

$result = 'Last Draw - 11 10 12'; 
echo str_replace('Last Draw - ', '', $result); // outputs: 11 10 12 
+0

謝謝!但是,日期可能不只是11 10 12 – user3467607

+0

所以呢?我只是用什麼都沒有取代'Last Draw'',留下的是其他任何東西。 – Latheesan

0

試試這個:

<?php 
$regexSearch = '/Last Draw - ([0-9]{1,2}) ([0-9]{1,2}) ([0-9]{1,4})/'; 
$regexReplace = '$1.$2.$3'; 
$str = 'Last Draw - 11 10 12 
Last Draw - 2 12 2014 
Last Draw - 24 3 99 
'; 

echo preg_replace($regexSearch, $regexReplace, $str); 

你可以看到它運行here

它基本上搜索任何日期,第一個和第二個值看起來像1到兩個數字,第三個值看起來像1到4。你可以使用下面的代碼有任何號碼爲三個詞:

/Last Draw - ([0-9]{1,}) ([0-9]{1,}) ([0-9]{1,})/ 

您可以使用regex101學寫這樣的正則表達式的代碼,直接測試他們的網站上。