Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Need help matching and solving for numbers with exponents.

Posted on 2013-11-20
6
Medium Priority
?
234 Views
Last Modified: 2013-11-20
I am looking for a pattern to match numbers from an expression that have exponents and are enclosed in ():
(64²xy)                                should match 64²
(6xy/-2²³xy)                        should match -2²³
(64²xy/2²yx)                       should match 64² and 2²
(6xy/-2²³+ab)                     should match -2²³
6xy/-2²³xy                          should not match anything as the expression is not enclosed in ()

The closest I have come to solving this is "([\-]?[0-9]+[°¹²³]+)".  This pattern matches all of the above example text but I only want it to match the first four examples.

Finally I would like to replace the matched text with a number that solves the exponent.
0
Comment
Question by:NevSoFly
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 35

Accepted Solution

by:
Terry Woods earned 2000 total points
ID: 39663930
The round brackets need escaping, otherwise they will be interpreted for their regular expression meaning (which is a group or lookahead, or lookbehind).

Also, given that with the third example you're trying to match 2 values within the string, it's important not to "consume" parts of the string for the first match such that the second match is missed. To achieve this, we need to use a lookahead.

This seems to work:
-?[0-9]+[°¹²³]+(?=[^(]*\))
0
 

Author Comment

by:NevSoFly
ID: 39664094
I tested your suggestion on gskinner.com/regexr but it didn't return any matches.
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 39664115
I tried it myself; the copy and paste of the pattern added a space character to the end, which broke it. Once I removed the space, it worked.
screenshotAlso, in case it helps anyone else, the correct URL for the site's online tool is http://gskinner.com/RegExr/
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Closing Comment

by:NevSoFly
ID: 39664123
Thanks, deleting that extra space made all the difference in the world.
0
 

Author Comment

by:NevSoFly
ID: 39664196
Sorry, I forgot about the second part of my question.   I would like to replace the matched text with a number that solves the exponent.
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 39664254
My specialty is regular expressions (I don't program in .NET) so you're probably best asking a separate question if you need help with that.
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

As most anyone who uses or has come across them can attest to, regular expressions (regex) are a complicated bit of magic. Packed so succinctly within their cryptic syntax lies a great deal of power. It's not the "take over the world" kind of power,…
Do you hate spam? I do, and I am willing to bet you do as well. I often wonder, though, "if people hate spam so much, why do they still post their email addresses on the web?" I'm not talking about a plain-text posting here. I am referring to the fa…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Suggested Courses

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question