 <p>The follows will give you the amount in <code>$matches[2]</code>, and the currency symbol or alpha representation will always be in <code>$matches[1]</code> or <code>$matches[3]</code></p> <pre><code>$values = array("$5.00", "€1.23", "£1,323.45", "1.23USD"); foreach($values as $val) { preg_match("/([^0-9.,]*)([0-9.,]*)([^0-9.,]*)/", $val, $matches); print_r($matches); } </code></pre>