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