2010-12-12 248 views
0

全部替換字符我有一個​​字符串Trade Card Catalogue 1988 Edition我想從1988年字符串除了PHP

除了刪除了所有我能擁有的所有字母組成的數組,並做了str_replacetrim,但我不知道這是否是更好的解決方案?

$string = 'Trade Card Catalogue 1988 Edition'; 
$letters = array('a','b','c'....'x','y','z'); 
$string = str_to_lower($string); 
$string = str_replace($letters, '', $string); 
$string = trim($string); 

在此先感謝

+0

你到底想幹什麼?刪除每個字符以便從字符串中篩選一個數字?還是其他什麼? – Nedec 2010-12-12 17:05:12

回答

4

正則表達式?

因此,假如你要的號碼(而不是第4個字或類似的東西):

$str = preg_replace('#\D#', '', $str); 

\D意味着每個字符不是一個數字。與[^0-9]相同。

如果可能有更多的數字,但你只想得到一個四位數的數字(一年),這也會起作用(但是如果你有幾個四位數字,並且你想得到一個特定的數字,那麼顯然會失敗) :

$str = preg_replace('#.*?(\d{4,4}).*#', '\1', $str); 
+2

您可能想將其更改爲'preg_replace'。 – codaddict 2010-12-12 17:06:18

+0

@codaddict:哎呀,謝謝。 – 2010-12-12 17:08:21

+1

'{4}'是方便的'{4,4}'的簡寫形式 – 2010-12-12 17:18:54

1

實際上,你可以只通過文字的整組進行修整作爲參數trim

$string = trim($string, 'abc...zABC...Z ' /* don't forget the space */);