我想检查一下我的行是否包含/*
。我知道如何检查块注释是否在开头:
/* 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
答案 0 :(得分: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());
}
答案 1 :(得分:1)
这适用于// single
和多行/* 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 */
答案 2 :(得分:0)
你可以通过多种方式,这里有一个:
在字符串中找到“/ *”:
int begin = yourstring.indexOf("/*");
为“* /”
执行相同的操作这将为您提供两个Integers,您可以使用它来获取包含注释的子字符串:
String comment = yourstring.substring(begin, end);