Regex to find $ amount and % amount in a string

Any questions involving matching text strings to patterns - the pattern is called a "regular expression."

Moderator: General Moderators

Post Reply
gmehta
Forum Newbie
Posts: 2
Joined: Fri Dec 09, 2016 9:28 am

Regex to find $ amount and % amount in a string

Post 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.
User avatar
Christopher
Site Administrator
Posts: 13595
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

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

Post 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})?
(#10850)
User avatar
requinix
Spammer :|
Posts: 6617
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

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

Post 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...
gmehta
Forum Newbie
Posts: 2
Joined: Fri Dec 09, 2016 9:28 am

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

Post 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?
User avatar
requinix
Spammer :|
Posts: 6617
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

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

Post by requinix »

You need to move that backslash too. The \ and $ are a pair, and together they represent a literal $ symbol.
Post Reply