0

我有一个字符串Trade Card Catalogue 1988 Edition,我希望删除除 1988 之外的所有内容。

我可以有一个所有字母的数组并做一个str_replaceand 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);

提前致谢

4

2 回答 2

4

正则表达式?

所以假设你想要这个数字(而不是第 4 个单词或类似的东西):

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

\D表示每个不是数字的字符。与 相同[^0-9]

如果可能有更多数字但您只想获得一个四位数字(一年),这也将起作用(但如果您有多个四位数字并且您想获得一个特定的数字,显然会失败):

$str = preg_replace('#.*?(\d{4,4}).*#', '\1', $str);
于 2010-12-12T17:04:12.883 回答
1

实际上,您可以将要修剪的整个字符集作为参数传递给trim

$string = trim($string, 'abc...zABC...Z ' /* don't forget the space */);
于 2010-12-12T17:05:40.673 回答