如何匹配n行与正则表达式

时间:2016-06-07 19:37:35

标签: java regex

我有一些这样的文字

Notes:
He jumped the sea-horse
but it looked ropey
Then he left

但有时会像这样

Notes:




Clay is only green
When it is seen

我需要在“Notes”之后捕获4行文本,因此输出应为

Notes:
He jumped the sea-horse
but it looked ropey
Then he left

和第二个例子

Notes:

我尝试过匹配换行符,但只能在正则表达式的其余部分后匹配

Notes:.*\n{4}

如何创建一个正则表达式,允许我重复整行和换行符的匹配四次? (这是一个非捕获组吗?)

2 个答案:

答案 0 :(得分:2)

如果我正确理解了这个问题,并且你想要捕获前4行,而不是关心它们是否为空白,那么最好不要使用正则表达式而只是拆分换行符上的文本以便获得一串字符串。像这样:

string[] lines = text.split("\\r")

然后简单地选择数组的前四个元素。

答案 1 :(得分:1)

你很近 - 在Notes:.*\n{4} {4}只绑定到换行符,所以它只会捕获“注释:”后跟任何内容,然后是4个空白行。

您正在寻找类似Notes:\n((?:.*\n){1,4})

的内容