Regex

2 respostas
Algebra

eu preciso identificar padrões de calculos simples por exemplo:

String calc1 = "1+2";
String calc2 = "1 + 2 + 3";
String calc3 = "1 - 25 + 3";
String calc4 = "(9 * 3) / 2";

quero identificar expressões desse tipo ou seja são termos simples porem não sei quantidade de constantes e quantas casa decimais elas terão nem os operadores que irão uni-las.
identificando e por exemplo um booelan quando encontrar expressões desse tipo em alguma string

tem como fazer isso usando regex?
alguem tem alguma idéia de como começo isso?

2 Respostas

E

A resposta simples é “não, porque expressões regulares não sabem contar parênteses.”

Isto posto, você pode usar expressões regulares para bater com as partes da expressão (operadores, identificadores, números etc.).

Se não quiser usar algum programa pronto que avalie as expressões, você pode tentar usar o java.io.StreamTokenizer (não é StringTokenizer, por favor!) para poder separar os operadores, identificadores e números. Note que é mais especializado (e mais simples de usar) que uma expressão regular.

http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/io/StreamTokenizer.html

Algebra

valeu pela dica… vou pesquisar sobre.

Criado 19 de julho de 2010
Ultima resposta 19 de jul. de 2010
Respostas 2
Participantes 2