wood burning stoves*
The moose likes Java in General and the fly likes regular expression for a formula Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "regular expression for a formula" Watch "regular expression for a formula" New topic
Author

regular expression for a formula

med yousfi
Greenhorn

Joined: Feb 07, 2013
Posts: 2
Hello,i have an expression like this :SUM(10,20,ABS(-5)) it is a formula like a formula used in Excel .it is possible to match this expression using regular expression ??? the purpose is to validate an expression and generate an object from this expression.thanks
Matthew Brown
Bartender

Joined: Apr 06, 2010
Posts: 4240
    
    7

Hi Med. Welcome to the Ranch!

It's probably possible. But it isn't enough to just give an example. I can give a regular expression that trivially matches that particular example and nothing else. You need to be able to describe the rules that apply. What are the allowed expressions, and how can we identify something that *doesn't* match?
med yousfi
Greenhorn

Joined: Feb 07, 2013
Posts: 2
the regular expression must be generic and accept the fact that a parameter of a function can be a function for exemple Sum(a1,Average(a2,a3,abs(a4))) a complex expression in this case Average(a2,a3,abs(a4)) is a parameter of Sum and abs(a4) is a parameter of the the function Average...
Joanne Neal
Rancher

Joined: Aug 05, 2005
Posts: 3166
    
  10
Again you've just given an example. You need to define the rules. Personally I would look at using a lexical parser rather than regular expressions.


Joanne
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 39543
    
  27
Regular expressions are not powerful enough to match mathematical expressions of arbitrary depth. Look into parser generators like SableCC, JavaCC and Antlr; they probably have predefined grammars for mathematical expressions. Or use a lexer like JFlex; I've yet to come across something so complicated that I felt like I *needed* a parser generator; JFlex was always sufficient for my purposes. Your mileage, of course, may vary.


Ping & DNS - updated with new look and Ping home screen widget
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 10908
    
  12

med yousfi wrote:the regular expression must be generic and accept the fact that a parameter of a function can be a function for exemple Sum(a1,Average(a2,a3,abs(a4))) a complex expression in this case Average(a2,a3,abs(a4)) is a parameter of Sum and abs(a4) is a parameter of the the function Average...


All of the examples you have given can be matched with

.*

That matches zero or more characters. But it probably isn't what you want.

I think you are putting the cart before the horse. You have decided to use regexes, and are asking how to force them to do what you want. That's like saying "I have a hammer - how do I use it to drill a 1/4" hole in a wall?"

sure, you MIGHT be able to do it if you really work at it, but it is not the right tool.

Instead, you should look at what you are trying to do, and then figure out what the right tool to do that is.
 
 
subject: regular expression for a formula
 
Similar Threads
parseInt method
How to use Regular expression in Jsp
Parsing using regular expression
How to use Regular expression in Jsp
How can I add error handling facilities to this code?