2015-11-30 21 views
14

これを行うにはどのような方法が良いですか?私はregexを使うべきか、あるいは私が使うことができる別の組み込みのPHP関数があるでしょうか?PHP - 数値以外の文字をすべて文字列から削除する

例えば、12 months12になります。 Every 6 months1を、なるために61Mになるためには、など

はありがとう

+0

正規表現を使用してください。 – aldrin27

+0

可能な重複:http://stackoverflow.com/a/4949347/3647441 –

+0

正規表現は必要ありません。単に 'trim'を使用してください。 – Andrew

答えて

25

あなたはこのケースでpreg_replace使用することができます。

$res = preg_replace("/[^0-9,.]/", "", "Every 6 Months"); 

$ res return 6この場合、

+0

ありがとうございます。関心がなければ、複数の区切り文字で文字列を爆発させることは可能でしょうか?ですから、 'explode()'がカンマ、セミコロン、コロンなどのいずれかで動作するようにしますか? – b85411

+0

hm、ここをクリックしてください:http://stackoverflow.com/questions/4955433/php-multiple-delimiters-in-explode – TechTreeDev

+5

答えは、コンマとピリオドを保持する文字列を許可します。質問では、すべての数字以外の文字を削除するよう求められます。これはマイナーな編集です(2文字しかないので編集には適格ではありません)。しかし、非数値をすべて削除する答えは '$ res = preg_replace("/[^ 0-9]/"、" "、 「6ヶ月ごと」); – Jon

18

\Dを使用して、数字以外の文字と一致させます。

preg_replace('~\D~', '', $str); 
+0

ピリオドも削除します。それはいくつかのものを探しているかもしれません。 – Jake

関連する問題