Java - 使用正则表达式识别字符串行中的注释

时间:2018-02-09 02:20:53

标签: java regex

我如何识别"评论"在一个字符串?我的评论"从*开始。

例如,*this is a comment.会被识别为评论。

这是我的代码:

public static boolean isComment(String s) {
    s = s.replaceAll("\\s+","");
    String comment = "'*'[a-zA-Z0-9_]+"; //Somehow using *[a-zA-Z0-9_]+ does not work.

    Pattern p = Pattern.compile(comment);
    Matcher m = p.matcher(s);

    if(m.find())
        return true;

    return false;
}

2 个答案:

答案 0 :(得分:1)

您可以将以下代码用于您的方法:

String s="hey *this is a comment*";
String comment = "\\*[^*]*\\*"; 

Pattern p = Pattern.compile(comment);
Matcher m = p.matcher(s);

if(m.find())
    System.out.println("found you, bad comment!");
else
    System.out.println("it looks like there is no comment...");

输入:

hey *this is a comment*

输出

found you, bad comment!

输入:

I am not a comment right?

输出

it looks like there is no comment...

您可以根据您的具体需求进行调整:

如果评论应从行的开头开始使用:

"^\\*[^*]*\\*"

如果您不需要结束*来将消息标识为注释,请使用:

"\\*.*"

<强>作业:

http://www.rexegg.com/regex-quickstart.html

答案 1 :(得分:-2)

使用此正则表达式"^\\*"字符串代替"'*'[a-zA-Z0-9_]+"

我希望能帮到你