1

我想检查我的行是否包含/*。我知道如何检查块注释是否在开头:

/* comment starts from the beginning and ends at the end */

if(line.startsWith("/*") && line.endsWith("*/")){

      System.out.println("comment : "+line);  
}

我想知道的是如何计算评论,如下所示:

something here /* comment*/

或者

something here /*comment */ something here
4

3 回答 3

2

这适用于// single和 multi-line /* comments */

Pattern pattern = Pattern.compile("//.*|/\\*((.|\\n)(?!=*/))+\\*/");
String code = " new SomeCode(); // comment \n" + " " + "/* multi\n"
        + " line \n" + " comment */\n"
        + "void function someFunction() { /* some code */ }";
Matcher matcher = pattern.matcher(code);
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出

// comment 
/* multi
 line 
 comment */
/* some code */
于 2013-08-03T21:04:30.503 回答
1

尝试使用这种模式:

String data = "this is amazing /* comment */ more data ";
    Pattern pattern = Pattern.compile("/\\*.*?\\*/");

    Matcher matcher = pattern.matcher(data);
    while (matcher.find()) {
        // Indicates match is found. Do further processing
        System.out.println(matcher.group());
    }
于 2013-08-03T20:57:45.097 回答
0

你可以通过多种方式,这里是一种:

在您的字符串中找到“/*”:

int begin = yourstring.indexOf("/*");

对“*/”做同样的事情

这将为您提供两个整数,您可以使用它们获取包含注释的子字符串:

String comment = yourstring.substring(begin, end);
于 2013-08-03T20:55:36.707 回答