繁体   English   中英

Java Regex无法匹配一行注释

[英]Java Regex Cannot Match One Line Comment

我正在为类似Java的语言编写编译器,并且需要匹配// Comment.样式的单行注释的出现// Comment. 给我的标记器。

我的尝试:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MatchOneLineComment {
  public static void main(String[] args) {
    Matcher matcher = Pattern.compile("//(.*)").matcher("//abc");
    System.out.println(matcher.group()); // should print "//abc"... right?
  }
}

但是我收到以下错误:

Exception in thread "main" java.lang.IllegalStateException: No match found
    at java.util.regex.Matcher.group(Matcher.java:485)
    at java.util.regex.Matcher.group(Matcher.java:445)
    at MatchOneLineComment.main(MatchOneLineComment.java:7)

任何帮助将不胜感激。

不要忘记致电Matcher#find()

matcher.find();

并在调用group()之前检查结果。

从javadoc

尝试找到与模式匹配的输入序列的下一个子序列。

此方法从此匹配器区域的开始处开始,或者,如果该方法的先前调用成功并且自此之后未重置匹配器,则从与先前匹配项不匹配的第一个字符开始。

如果匹配成功,则可以通过开始,结束和分组方法获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM