2012-02-10 11 views
0

"9 mesi in cotone EURO 3+ss"または"9 mesi in cotone 3 EURO +ss"のような文字列を持っていて、EUROの前または後の整数値を取得したいと思います。どのようにユーザーがそれを送信するか知っている) 誰も助けてください、私はしてください?このようなphpは "ユーロ"の前後の文字列を検索します

答えて

0

何か:

if(preg_match('/(\\d+(?:\.\\d+)?)?\\s*euro\\s*(\\d+(?:\.\\d+)?)?/i', $string, $regs) and count($regs) > 1) { 
    if(!$regs[1] and !$regs[2]) { 
     // Invalid input 
    } else { 
     $amount = floatval($regs[1] ? $regs[1] : $regs[2]); 
     // Do something with $amount 
    } 
} 

正規表現がロケール(スペース千の区切り、カンマなど)に応じて調整する必要があるかもしれません。

整数値で作業する場合は、正規表現はに簡単になります。2つの正規表現にそれを破るために単純かもしれません

preg_match('/(\\d+)?\\s*euro\\s*(\\d+)?/i', $string, $regs) 
+0

完璧、ありがとうございます! – user1202494

0

/(d+)\s*EURO/ 
/EURO\s*(d+)/ 

これは正しい軌道に乗ってあなたを設定する必要があります。

0
preg_match_all('/[0-9]+/',$string,$matches); 
$values = array_shift($matches); 
$lastnum = array_pop($values); 
echo $lastnum; 
関連する問題