Page 1 of 1

Regex to find $ amount and % amount in a string

Posted: Fri Dec 09, 2016 10:04 am
by gmehta
Hi,

I am working a requirement where I need to extract the $ amount or % amount from a string. I have been able to extract dollar amount successfully using the following regex pattern

$pattern = '/\$[0-9]*\.{0,1}[0-9]+/';

I still however need help with finding % amount using the same regex. Can someone please help.

Example:

5% Off Your Order --> Need to get 5% from this
5.25% Off All Orders --> Need to get 5.25% from this
$10 Off Orders Over $100 --> Need to get $10, $100

Can someone please help me with the Regex.

Re: Regex to find $ amount and % amount in a string

Posted: Fri Dec 09, 2016 11:07 am
by Christopher
Why don't you just match [0-9\.] and return all matches. That will work for your case. For any decimal number search for regexps e.g. \d+(\.\d{1,2})?

Re: Regex to find $ amount and % amount in a string

Posted: Fri Dec 09, 2016 6:06 pm
by requinix
Is there a risk of the string containing numbers that aren't money or percentages?

Anyway, what happened when you tried a regex for the percentage? All you needed to do was replace the $ at the beginning for a % at the end...

Re: Regex to find $ amount and % amount in a string

Posted: Sun Dec 11, 2016 1:15 am
by gmehta
requinix wrote:Is there a risk of the string containing numbers that aren't money or percentages?

Anyway, what happened when you tried a regex for the percentage? All you needed to do was replace the $ at the beginning for a % at the end...

How do I replace for $ at beginning with % at the end? I tried this

/\[0-9]*\.{0,1}[0-9]+%/ but it is not working to get % amount. Any help on how to get that?

Re: Regex to find $ amount and % amount in a string

Posted: Sun Dec 11, 2016 1:20 am
by requinix
You need to move that backslash too. The \ and $ are a pair, and together they represent a literal $ symbol.