Comentários em Java regex: egrep “(/ \ * \ * | / * | \ * / | \ * \ * /)” text.txt

1

Estou tentando extrair linhas que iniciam ou terminam um comentário em Java:

O que eu tenho é:

egrep "(/** | /* | */ | **/)" text.txt

Notei que isso funciona para todas as linhas (como / * comment * /), exceto aquelas que contêm somente / *, / **, ** / ou * / e nada anterior ou posterior isso.

Por que isso acontece?

    
por mavavilj 06.11.2015 / 15:29

2 respostas

1

Seu padrão egrep "(/** | /* | */ | **/)" text.txt contém espaços explícitos; tente sem eles: egrep "(/**|/*|*/|**/)" text.txt

    
por 06.11.2015 / 15:33
0

Você está incluindo espaços dentro de seu padrão e está esquecendo as linhas de comentário que começam com // .

Com:

egrep "(/\*\*|/\*|\*/|\*\*/|//)" text.txt

Eu vejo todas as linhas que iniciam ou terminam comentários, incluindo linhas que contêm apenas os tokens. Por exemplo ...

text.txt:

this should not be there
// this should be there
/* and this too */
/** even this
should be there too **/
/* or
that
also */
not this
/*
*/
/**
**/

Saída:

// this should be there
/* and this too */
/** even this
should be there too **/
/* or
also */
/*
*/
/**
**/
    
por 06.11.2015 / 15:41