Заменить все символы в строке кроме PHP - PullRequest
0 голосов
/ 12 декабря 2010

У меня есть строка 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);

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 12 декабря 2010

Регулярное выражение?

Итак, если вы хотите, чтобы число (а не 4-е слово или что-то подобное):

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

\D означает каждый символ, который являетсяне цифра .Так же, как [^0-9].

Если может быть больше чисел, но вы хотите получить только четырехзначное число (год), это также будет работать (но, очевидно, не удастся, если у вас есть несколько четырехзначных чисел).и вы хотите получить конкретный):

$str = preg_replace('#.*?(\d{4,4}).*#', '\1', $str);
1 голос
/ 12 декабря 2010

Вы можете просто передать весь набор символов для обрезки в качестве параметра в trim:

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