Skip to content

Instantly share code, notes, and snippets.

@itsXactlY
Forked from wischweh/price-regexp.txt
Created May 9, 2022 22:18
Show Gist options
  • Save itsXactlY/d4057a69b0751c1488f14b3737f0772b to your computer and use it in GitHub Desktop.
Save itsXactlY/d4057a69b0751c1488f14b3737f0772b to your computer and use it in GitHub Desktop.
This Regexp tries to grep a price from a string
// This Regexp tries to grep a price from a string.
// 1. The number must makes sense. it may contain "." or "," i.e 1 1.000,99 10,0 etc
// 2. The String must conatin a currency identifier like EUR,USD,€ or $.
// 2a) The currency identifer may be at the begining or at the end of the matching string
// 2b) There may be a space between value and currency identifier
// This regexp is based upon http://stackoverflow.com/questions/1547574/regex-for-prices
(USD|EUR|€|\$|£)\s?(\d{1,}(?:[.,]\d{3})*(?:[.,]\d{2}))|(\d{1,3}(?:[.,]\d{3})*(?:[.,]\d{2})?)\s?(USD|EUR)
updated Version (also matches numbers without delimiters in between like $2 $34 thx PepsiX for pointing out this issue:
(USD|EUR|€|\$|£)\s?(\d{1,}(?:[.,]*\d{3})*(?:[.,]*\d*))|(\d{1,3}(?:[.,]*\d*)*(?:[.,]*\d*)?)\s?(USD|EUR)
// here is the breakdown:
// Price Number: \d{1,3}(?:[.,]\d{3})*(?:[.,]\d{2})?
// Currency Symbol: a\s?(USD|EUR|€|\$) (with optional leading space)Ω// This Regexp tries to grep a price from a string.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment