Duvida sobre expressoes regulares - Validar caracteres especiais

5 respostas
ruben_m

Como faço para validar Caracteres como “(” ou “)” ou qualquer outro em expressões regulares em java?

5 Respostas

heroijapa

não entendi, vc quer que passe apenas caracteres especiais? ou quer que passe qualquer coisa?

qual a aplicação disso? que codigo vc usou q não deu certo?

ruben_m

Aqui esta meu codigo:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package expressaor;

import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;

/**
 * @author Manhiça
 */
public class ExpressaoR {
    
    public static boolean sequenciaValida(String texto, String regex){
        if(texto.matches(regex))
            return true;
        return false;
    }
    
    public static String validarRegex() {
        boolean regexValido = false;
        String regex = JOptionPane.showInputDialog(null,"Introduza uma exprecao regular valida");
        do {
            try{
                regexValido = "texte".matches(regex) || !"texte".matches(regex);
            } catch(PatternSyntaxException exp){
                regex = JOptionPane.showInputDialog(null,"Introduza uma exprecao regular valida","Exprecao regular invalida", JOptionPane.WARNING_MESSAGE);
                regexValido = false;
            }
        }while(!regexValido);
        return regex;
    }
    
    public static void main(String[] args) {
        String regex = validarRegex();
        float a=-4-7;
        String sequencia = JOptionPane.showInputDialog(null,"Introduza uma Sequencia");
        while(sequencia != null){
            if(sequenciaValida(sequencia, regex))
                JOptionPane.showMessageDialog(null, "Sequencia Valida","Resultado", JOptionPane.INFORMATION_MESSAGE);
            else
                JOptionPane.showMessageDialog(null, "Sequencia invalida","Resultado", JOptionPane.ERROR_MESSAGE);
            sequencia = JOptionPane.showInputDialog(null,"Introduza uma Sequencia");
        }
        JOptionPane.showMessageDialog(null, "Obrigado");
    }
}

Ele deve receber uma Expressao regular por teclado e depois validar todas Strings que o usuario Introduzir.

O programa Funciona , mas não consigo validar caracteres como "(" ")" "+" "*" "[" "]"

E

tentou colocar contrabarra antes desses caracteres?

Por exemplo, ao invés de ficar “(*)” ficaria “(*)”

ruben_m

evefuji:
tentou colocar contrabarra antes desses caracteres?

Por exemplo, ao invés de ficar “(*)” ficaria “(*)”

vlw , tentei e funcionou … mas agora a ideia era de evitar por a barra para alguns casos… existe alguma maneira de dar tratamento a String de modo que ela traga a barra sem ter de ficar pondo a barra toda hora?

E

pensou em aplicar um replaceAll?

String entrada = "(.*)"; entrada = entrada.replaceAll("([\[\]\(\)\.\*\+])", "\\\1"); ou algo do tipo

Criado 27 de agosto de 2011
Ultima resposta 29 de ago. de 2011
Respostas 5
Participantes 3