什么可以是正则表达式,如果再找到行“10的println‘测试注释’//测试点评
问题描述:
为线,什么可以是正则表达式,如果再找到行“10的println‘测试注释’//测试点评
10 println "Testing 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);
我一直在使用//.*尝试,但其不匹配的评论 使用ma的find方法tcher,我正在基于指定的捕获组进行标记。
答
您可以尝试this regex:
\/\/.*
-
\/\/
比赛//
开始评论 -
.*
匹配字符后的//
任何金额,除了行结束
你的问题一定是您使用//
而不是\/\/
。 /
是一个元字符,并已用反斜杠转义。 NEX时间我建议您在问之前使用regex101,简单的错误将被突出显示,您可以快速测试它。
+0
当我添加2 \时为我工作。即\\ \ \\。*。谢谢。我将明确使用您提供的链接。 – Ronn
试图 “//.*”,但没有运气 – Ronn
看一看https://regex101.com/和尝试\/\/* –
给编译错误 “无效的转义序列(有效问卷是\ b \牛逼\ n \˚F\ r \” \” \\)”为 “\/\ /.*” – Ronn