Expressões Regulares

9 respostas
aandersonn

gente sou novo aqui e estou com um problema tenho dois textos e quero substituir um símbolo por uma palavra tipo

1º)"Era uma vez um Rei, nascido em Agosto de 1310, que tinha sido batizado em Janeiro de 1311 por 2 Fadas "

2º)“era uma vez um rei nascido em 8 de #N# que tinha sido batizado em 1 de #N# por #N# fadas.”

substituir os #N# pelas palavras equivalentes no primeiro texto ou seja o primeiro #N# ,por Agosto de 1310 e etc …

9 Respostas

michetti

Cria variáveis e seta os valores as variáveis..

String primeiraVariavel = "Agosto de 1310", segundaVariavel = "Janeiro de 1311", terceiraVariavel = " 2 ";

Era uma vez um Rei nascido em primeiraVariavel que tinha sido batizado em segundaVariavel por terceiraVariavel
asousaj

Caso sempre tenha que usar o mesmo símbolo #N#, usa o int indexOf(String) ou int indexOf(String str, int fromIndex), acha a ocorrência muda a palavra, procura a próxima ocorrencia e assim por diante … não ficou bem explicado mas dá pra entender :smiley:

Rodrigo_Sasaki

Eu particularmente faria algo assim:String template = "Era uma vez um Rei, nascido em Agosto de {0}, que tinha sido batizado em Janeiro de {1} por {2} Fadas" ; String text = java.text.MessageFormat.format(template, 1310, 1311, 2); System.out.println(text);

asousaj

aandersonn, especifique melhor sobre o texto a ser tratado. É algo que você pode definir o padrão? Se a resposta for sim, a opção do Rodrigo Sasaki é a melhor.

aandersonn

e o seguinte eu tenho que saber qual das strings do texto 1 esta relacionada ao #N# do texto dois e depois substituir

aandersonn

tem que sair assim o
1º)"Era uma vez um Rei, nascido em Agosto de 1310, que tinha sido batizado em Janeiro de 1311 por 2 Fadas "

2º)“era uma vez um rei nascido em 8 de #N# que tinha sido batizado em 1 de #N# por #N# fadas.”

resposta —> 1º)"Era uma vez um Rei, nascido em 8 de Agosto de 1310, que tinha sido batizado em 1 de Janeiro de 1311 por 2 Fadas "

Rodrigo_Sasaki

Como você vai saber qual a parte que precisa ser copiada?

aandersonn

e isso que estou em duvida teve um colega meu que falo que tinha que pegar dez caracter antes do #N#e dez depois e monta uma expressao regular para achar a palavra no texto 1 mas nao to conseguindo fazer

Rodrigo_Sasaki

Então você tem que descobrir o que tem que pegar, sem isso você não vai saber o que fazer.

Não tem como montar uma expressão regular eficiente sem saber com o que ela tem que casar.

Criado 17 de novembro de 2013
Ultima resposta 19 de nov. de 2013
Respostas 9
Participantes 4