2010-12-12 52 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 */);