对于行,
10 println "Testing Comment" //Test Comment
查找整个字符串的“//Test Comment”的正则表达式可以是什么。我想用它来进行标记化,因为我正在用 Java 创建词法分析器。
代码:
StringBuilder sb = new StringBuilder();
String[] p = new String[5];
p[0] = "(?<Reserved>\\bPRINTLN\\b)"; //RESERVED WORDS
p[1] = "(?<Comments> //.*)";
p[2] = "(?<Constants>[0-9]+)"; //Constants eg: 21 54 14215
p[3] = "(?<Special>[\\[\\]/.$*\\-+=><#()%,!|&{}])"; //SPECIAL CHAR Eg:-+*/ etc
p[4] = "(?<Identifiers>\\w+)"; //Identifiers eg: circum radius
for (String s: p) {
sb.append(String.format("|(%s)", s));
} //for ends here
Pattern tp = Pattern.compile(new String(sb.substring(1))); // adding the patterns one after another separated by |
Matcher m = tp.matcher(line);
我试过使用//.* 但它与注释不匹配。 使用匹配器中的查找方法,我基于命名的捕获组进行标记。
最佳答案
你可以试试this regex :
\/\/.*
\/\/
匹配//
开始评论.*
匹配//
之后的任意数量的字符,行终止符除外
您的问题一定是您使用了//
而不是\/\/
。 /
是元字符,已用反斜杠转义。下次我建议您使用 regex101在询问之前,简单的错误将被突出显示,您可以快速测试它。
关于java - 在 "10 println "行中查找注释的正则表达式是什么 Testing if then"//Test Comment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539401/