Java 正则表达式可以在“行”中找到什么注释;10 println“;测试是否“然后”//测试注释

Java 正则表达式可以在“行”中找到什么注释;10 println“;测试是否“然后”//测试注释,java,regex,comments,lexer,Java,Regex,Comments,Lexer,对于线路 10 println "Testing Comment" //Test Comment 正则表达式可以作为一个字符串查找“//Test Comment”。我想在java中创建lexer时使用它进行标记化 代码: StringBuilder sb=新建StringBuilder(); 字符串[]p=新字符串[5]; p[0]=“(?\\bPRINTLN\\b)”//保留字 p[1]=“(?/*”; p[2]=“(?[0-9]+)”//常数例:215414215 p[3]=“(?[\\

对于线路

10  println "Testing Comment" //Test Comment
正则表达式可以作为一个字符串查找“//Test Comment”。我想在java中创建lexer时使用它进行标记化

代码:

StringBuilder sb=新建StringBuilder();
字符串[]p=新字符串[5];
p[0]=“(?\\bPRINTLN\\b)”//保留字
p[1]=“(?/*”;
p[2]=“(?[0-9]+)”//常数例:215414215
p[3]=“(?[\\[\]/.$*\-+=>您可以尝试:

  • \/\/
    匹配开始注释的
    /
  • *
    匹配
    /
    后面的任意数量的字符,行终止符除外
您的问题一定是您使用了
/
而不是
\/\/\/
/
是一个元字符,并且已用反斜杠转义。下次我建议您在询问之前使用,简单的错误将突出显示,您可以快速测试它。

尝试以下方法:

(?=\/\/)[\s\S]+

演示:

尝试了“//*”,但没有运气查看并尝试\/\/.*给编译错误“\/\/.*的转义序列无效(有效的转义序列是\b\t\n\f\r\”\'\\)”更新了附加代码。因此,对于java,您将需要转义转义,因此
\\/\\/.*
在我添加2\.即\\/\.*时为我工作。谢谢。我将使用您提供的链接。
\/\/.*
(?=\/\/)[\s\S]+