[英]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.