PHP extract dollar amounts
Extract dollar amounts using PHP.
Input file:
New statement balance: $24.99
New statement balance: $99
New statement balance: $100.20
New statement balance: $730.59
New statement balance: $1,067.94
<?php
$input = file_get_contents('input.txt');
preg_match_all('/(\$?\d{1,3}(?:,?\d{3})*(?:\.\d{2})?)/', $input, $matches);
var_dump($matches);
Output:
array(2) { [0]=> array(5) { [0]=> string(6) "$24.99" [1]=> string(3) "$99" [2]=> string(7) "$100.20" [3]=> string(7) "$730.59" [4]=> string(9) "$1,067.94" } [1]=> array(5) { [0]=> string(6) "$24.99" [1]=> string(3) "$99" [2]=> string(7) "$100.20" [3]=> string(7) "$730.59" [4]=> string(9) "$1,067.94" } }
Regex explained:
$DOLLAR_AMOUNT_REGEX =
'(' . // begin capture group
'\$?' . // dollar sign, optional
'\d{1,3}'. // 1-3 digits
'(' . // begin group
'?:' . // non-capturing group
',?' . // comma, optional
'\d{3}' . // 3 digits
')' . // end group
'*' . // group repeats any number of times
'(' . // begin group
'?:' . // non-capturing group
'\.' . // period
'\d{2}' . // 2 digits
')' . // end group
'?' . // group is optional
')' . // end capture group
'';
Comments
Leave a Reply