Como faço para validar Caracteres como “(” ou “)” ou qualquer outro em expressões regulares em java?
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?
Aqui esta meu codigo:
[code]/*
- 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”);
}
}[/code]
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 “(” “)” “+” “*” “[” “]”
tentou colocar contrabarra antes desses caracteres?
Por exemplo, ao invés de ficar “(*)” ficaria “(*)”
[quote=evefuji]tentou colocar contrabarra antes desses caracteres?
Por exemplo, ao invés de ficar “(*)” ficaria “(*)”[/quote]
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?
pensou em aplicar um replaceAll?
String entrada = "(.*)";
entrada = entrada.replaceAll("([\[\]\(\)\.\*\+])", "\\\1");
ou algo do tipo