正则表达式 - Java以*开头并以换行符结束(\ n)

时间:2018-03-08 02:13:26

标签: java regex compiler-construction

基本上这就是它的样子:

int abc = 10;
* this is a comment

所以,我只是想找到* this is a comment,以便我可以从字符串中删除它。我尝试了一些例子,虽然它似乎不起作用。这个想法基本上以*开头,然后是以换行符(\n)结尾的单词,数字或符号(任何真正的)的任意组合。


谢谢。

2 个答案:

答案 0 :(得分:4)

模式^\*.*$应该在这里工作:

String line = "Not a comment\n* This is a comment\n*This is also a comment\n";
line += "Not a * comment.";
String pattern = "^\\*.*$";

Pattern r = Pattern.compile(pattern, Pattern.MULTILINE);
Matcher m = r.matcher(line);

while (m.find( )) {
    System.out.println("Found value: " + m.group(0) );
}

Found value: * This is a comment
Found value: *This is also a comment

这里解释不多,除了*是一个正则表达式元字符,如果你想将它用作文字,那么它需要用反斜杠进行转义。

Demo

答案 1 :(得分:3)

在这种情况下的正则表达式IMO是一种矫枉过正。将这些行拆分为" \ n"然后对于每一行,只需用line.startsWith("*")进行检查即可进行过滤。