Detectar um padrão em uma String

6 respostas
fredericoengels

Pessoal, estou precisando fazer uma consulta dinâmica:

“INSERT INTO TABELA(coluna1,coluna2,coluna3) VALUES ({valor1},{valor2},{valor3})”

Essa String eu recebo do usuário e preciso substituir os valores {valor1} , {valor2} , {valor3} por exemplo

Minha dúvida é, como pego a partir dessa String fornecida, todas as ocorrências que seguem esse padrão { (A-Z | a-z | 0-9 | - | _)+ } ??

6 Respostas

Rodrigo_Sasaki

Ja tentou com Pattern e Matcher?String str = "INSERT INTO TABELA(coluna1,coluna2,coluna3) VALUES ({valor1},{valor2},{valor3})"; Pattern pattern = Pattern.compile("\\{(A-Za-z0-9_-)+\\}"); Matcher matcher = pattern.matcher(str); while(matcher.find()){ System.out.println(matcher.group()); }

E

Estude expressões regulares e o método replace da classe String.

pmlm

Porque não usar simplesmente PreparedStatement?

fredericoengels

To tentando aqui mas ta dando PatternSyntaxException, vou verificar

Rodrigo_Sasaki

tentando o que? a minha sugestão?

se for é porque você tem que escapar os caracteres { e }, eles tem um significado especial em expressões regulares.

Mas a sugestão do pmlm pareceu muito boa, ja pensou em usar PreparedStatement para isso? pode ser válido.

pdpbom
Criado 6 de junho de 2012
Ultima resposta 6 de jun. de 2012
Respostas 6
Participantes 5