Expressão regular - Quebra de linha

Olá pessoal!!!

Estou finalizando um programa… e só falta uma coisa, que só achei o erro quando estava fazendo os testes…

Matcher outline = BaseFatia.expRegulares("\n?(.*)\n?" , fileEmenta);

Eu estou usando a expressão regular acima, para achar o elemento “outline” no arquivo que irá ser analisado, porém quando existe “quebra de linha” eu não consigo fazer essa busca.
Na verdade, preciso achar qualquer coisa, que esteja entre a tag , tendo ou não quebra de linha.

Exemplo arquivo de entrada:

Aprova o Regulamento do Imposto sobre Operações Relativas à Circulação de Mercadorias e sobre Prestações de Serviços de Transporte Interestadual e Intermunicipal e de Comunicação -

Alguém pode me ajudar?
Valew…

Tente usar \n ao invés de \n.

Uma solução que eu fiz foi concatenar todo o texto em uma única linha, ficou mais fácil para procurar no texto, como eu precisava de uma solução rápida e prática eu optei por essa idéia!

Olá!

Não manjo muito de RegExp, mas acho que o que vc quer é algo assim:

“(.|\s)*”

O “\s” é um espaço qualquer, podendo ser uma quebra de linha, um espaço simples ou qualquer coisa do gênero.

Olá Thiago!

Não deu certo…
Mas, como você tentou concatenar o seu texto?
Eu até entendi o que você quis dizer… mas se nem consigo achar o elemento… não vou conseguir concatenar o texto.

O problema que eu tbm achei foi:
Quando eu sei exatamento o nº de quebra de linhas, ele acha…
Por exemplo:

fdjkfjdkjgd

Matcher outline = BaseFatia.expRegulares("\n?(.*)\n?" , fileEmenta);

Será que não tem como procurar apenas por “outline” --> “qualquer coisa… tento ou não espaço… tendo ou não quebra de linha”?

Tenta com essa RegExp que eu mandei, acho que é isso que vc quer :wink:

    String texto = "kjdbidbdugf pdf df \n çdknffdo dpoug onf dgóifgó oifg f\n <outline>dsçufdpudsfoidvfodsvfodyfvd \n fouyvfduyfvdufvdufvdufvodufbdsifvdoufbdsofvdouiyvfou svfs\n óihóihóóihouigipboiyb\n </outline> glib guighfuifdpug og hf ihfoigho  \n";

    Pattern p = Pattern.compile("(<outline>)");

    Matcher m = p.matcher(texto);

    if ( m.find() ) {

      texto = texto.substring( m.start() ) ;
      System.out.println("achou o início");
      m = Pattern.compile("(</outline>)").matcher(texto);

      if ( m.find() ) {
        System.out.println("achou o fim");
        texto = texto.substring( 0, m.end() );
      }


    }
    System.out.println(texto);

Olá Thiago!

Hum… olhei o código que você me mandou… mas vou ter um problema…

O texto que eu necessito achar é uma variável… ou seja, esse programa irá “rodar” vários arquivos… e eu preciso que ele ache o elemento para que eu possa utilizar e transformar o conteúdo que estará inserido dentro dessa tag.

Tomás,

Tentei utilizar a expressão regular que você enviou, mas está ocorrendo algum erro, porque não está sendo aceito essa parte pelo java: “*|\s”

Obrigada

Ops!!!

“(.|\s)*”

Agora deve ir…