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

これには複数の方法がありますが、ここにその 1 つがあります。

文字列で「/*」を見つけます。

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

「*/」についても同じことを行います

これにより、コメントを含む部分文字列を取得できる2つの整数が取得されます。

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