Expressão Regular para reconhecimento de comentários e strings

O código abaixo foi adaptado de um código publicado no artigo Regular Expressions and the Java Programming Language . No original são reconhecidos apenas comentários de uma linha.

A adaptação feita permite reconhecer comentários de multiplas linhas e Strings.


/*
* Prints out the comments found in a .java file.
*/
import java.util.regex.*;
import java.io.*;
import java.nio.*;
import java.nio.charset.*;
import java.nio.channels.*;

public class CharBufferExample {

    public static void main(String[] args) throws Exception {

        // Create a pattern to match comments
        Pattern pInline =
        Pattern.compile(”//.*$”, Pattern.MULTILINE);

        Pattern pMultiline =
        Pattern.compile(”\/{1}\*{1,}.*\*{1,}\/{1}”);

        Pattern pString =
        Pattern.compile(””{1}.*?”{1}”);

        // Get a Channel for the source file
        File f = new File(”nome_do_arquivo.java”);
        FileInputStream fis = new FileInputStream(f);
        FileChannel fc = fis.getChannel();

        // Get a CharBuffer from the source file
        ByteBuffer bb =
        fc.map(FileChannel.MapMode.READ_ONLY, 0, (int)fc.size());
        Charset cs = Charset.forName(”8859_1″);
        CharsetDecoder cd = cs.newDecoder();
        CharBuffer cb = cd.decode(bb);

        // Run some matches
        Matcher m = pInline.matcher(cb);
        while (m.find())
        System.out.println(”Found comment: “+m.group());

        // Run some matches
        Matcher multiline = pMultiline.matcher(cb);
        while (multiline.find())
        System.out.println(”Found comment: n”+multiline.group());

        // Run some matches
        Matcher strings = pString.matcher(cb);
        while (strings.find())
        System.out.println(”Found String: n”+strings.group());
    }
}

Referências sobre expressões regulares em Java:
http://java.sun.com/developer/technicalArticles/releases/1.4regex/
http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Matcher.html
http://www.regular-expressions.info/java.html

Um comentário sobre “Expressão Regular para reconhecimento de comentários e strings

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s