Примерно так:
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
}
}
Регулярное выражение, возможно, потребуется скорректировать в зависимости от локали (разделители пробелов, запятые и т. Д.).
При работе с целочисленными значениями регулярное выражение упрощается до:
preg_match('/(\\d+)?\\s*euro\\s*(\\d+)?/i', $string, $regs)