【问题标题】:how to find multiline comments from a java file?如何从java文件中查找多行注释?
【发布时间】:2015-05-02 15:19:40
【问题描述】:

我已经阅读了我的 java 源文件并将其内容存储在 String 中 但是我很难从文件中找到多行 cmets

我的任务是找到像这样的多行 cmets:-

/* i am helpful
i am great
*/

并显示它们

【问题讨论】:

标签: java string file comments lexical-analysis


【解决方案1】:

在这里,您可以将正则表达式与 Pattern 和 Matcher 类一起使用。

Pattern p = Pattern.compile("(?s)/\\*.*?\\*/");

(?s) DOTALL 修饰符使正则表达式中的点也匹配换行符。

示例:

String s = "foo/* i am helpful\n" + 
        "i am great\n" + 
        "*/"
        + "bar";
Pattern p = Pattern.compile("(?s)/\\*.*?\\*/");
Matcher m = p.matcher(s);
while(m.find())
{
    System.out.println(m.group());
}

输出:

/* i am helpful
i am great
*/

【讨论】:

  • 如果/**/ 字符是String 文字的一部分怎么办?也就是说,它们在双引号内?在这种情况下,它们不是多行注释分隔符,并且您不希望您的表达式找到它们。要正确解决这个问题,正则表达式不是正确的工具。
  • 是的,我同意这一点。正则表达式不是正确的工具。他需要使用解析器来处理更复杂的情况。
猜你喜欢
  • 2022-01-23
  • 2012-01-03
  • 2021-07-08
  • 2020-07-25
  • 1970-01-01
  • 2011-04-25
  • 2010-10-27
  • 2021-03-14
  • 1970-01-01
相关资源
最近更新 更多