regex - Java Regular Expression to match dollar amounts -


this i've been using

\$?[0-9]+\.*[0-9]* 

but when doing testing noticed things like

$$$34.00  

would return match (but matcher.group()) returns matched substring. don't want pass regular expression if user enters more 1 dollar sign tried this:

\${1}[0-9]+\.*[0-9]* 

but seems behave same regular expression first typed. right i'm testing in java but, plan use in c++ using boost libraries. please don't give me solution here because i'm trying learn without giving me answer.

but need making user can enter 1 dollar sign (which thought \${1} do)

since you're doing learn regex...

^\$(([1-9]\d{0,2}(,\d{3})*)|(([1-9]\d*)?\d))(\.\d\d)?$

breakdown:

^\$ start of string $ single dollar sign

([1-9]\d{0,2}(,\d{3})*) 1-3 digits first digit not 0, followed 0 or more occurrences of comma 3 digits

or

(([1-9]\d*)?\d) 1 or more digits first digit can 0 if it's digit

(\.\d\d)?$ period , 2 digits optionally @ end of string

matches:

$4,098.09 $4098.09 $0.35 $0 $380 

does not match:

$098.09 $0.9 $10,98.09 $10,980456 

Comments

Popular posts from this blog

php - get table cell data from and place a copy in another table -

javascript - Mootools wait with Fx.Morph start -

php - Navigate throught databse rows -