0

Trade Card Catalogue 1988 Edition1988年以外のすべてを削除したい文字列があります。

すべての文字の配列を作成してastr_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);

前もって感謝します

4

2 に答える 2

4

正規表現?

したがって、番号が必要であると仮定します(4番目の単語などではありません)。

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

\D数字ではないすべての文字を意味します。と同じ[^0-9]です。

さらに多くの数字がある可能性があるが、4桁の数字(1年)だけを取得したい場合、これも機能します(ただし、4桁の数字が複数あり、特定の数字を取得したい場合は、明らかに失敗します):

$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 に答える