我有一个字符串Trade Card Catalogue 1988 Edition
除了1988年之外,我希望删除所有内容。
我可以拥有所有字母的数组并执行str_replace
和trim
,但我想知道这是否是更好的解决方案?
$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 :(得分:4)
正则表达式?
所以假设你想要数字(而不是第四个字或类似的东西):
$str = preg_replace('#\D#', '', $str);
\D
表示每个不是数字的字符。与[^0-9]
相同。
如果可能有更多数字,但你只想获得一个四位数字(一年),这也会有效(但如果你有几个四位数字并且你想得到一个特定的数字,那么显然会失败):
$str = preg_replace('#.*?(\d{4,4}).*#', '\1', $str);
答案 1 :(得分:1)
您实际上只需将整个字符集作为参数传递给trim
:
$string = trim($string, 'abc...zABC...Z ' /* don't forget the space */);