Problemas com Regex

2 respostas
G

Olá, estou com um problema ao usar o pacote regex onde os padroes estao casando um sim e um nao.
OBS: estou usando um arquivo em codificação “UTF-8”.

static void lineProcess() { int number_of_pages = 0, first_page = 0, last_page = 0; matcher = Pattern.compile("-+ Page [0-9]+-+").matcher(texto); boolean c = false; while (matcher.find()) { if (matcher.find()) { System.out.println(matcher.group()); matcher2 = Pattern.compile(".+?").matcher(matcher.group()); while (matcher2.find()) if (matcher2.find()) x = x + matcher2.group(); } } }

2 Respostas

gomesrod

Não analisei muito a fundo, mas percebi esse erro aqui:

O método matcher.find() pula para a próxima sequência que casa com o pattern.
Quando você faz isso:

while(matcher.find()) if (matcher.find()) // Faz alguma coisa

Está pulando duas vezes, ou seja: pula para a próxima sequência, [ignora essa sequência sem pegar o valor] , pula para a próxima, usa o valor dessa segunda.
Repetindo o ciclo você está justamente jogando fora uma sim uma não.

E além de tudo esse if é totalmente desnecessário, não? Já passou pela mesma condição no while…

G

Valew cara, nao reparei mesmo.

Criado 13 de maio de 2013
Ultima resposta 13 de mai. de 2013
Respostas 2
Participantes 2