2014-03-04 109 views
0

有人能告诉我的正则表达式匹配下面输入:正则表达式重复

Tom                              
Mary         
George 

我觉得正则表达式是.*\n.*\n.*\n,但没有任何表示这种简单的方式? 我试过[.\*\n]\*但它不起作用。

+0

你试图匹配3个连续的非空行吗? –

+0

也许是这样的:^ [A-Za-z] + $ – duffymo

+0

通常Perl代码的工作原理是一次读取一行文件。您必须在一个字符串中包含全部三行才能与正则表达式匹配。你到底想做什么?请澄清。 – AdrianHHH

回答

0

如何:

$str =~ /(?:.+\n){3}/; 
+0

最后一句话可能没有换行符... – Pradeep

+0

对不起,您能否告诉我您的解决方案中“:”的含义。 – user3326148

+0

@ user3326148:'(?:...)'是一个非捕获组。看看:http://www.regular-expressions.info/brackets.html如果你不需要捕获,非捕获组比捕获组更有效... – Toto

0

为您做以下的正则表达式的工作?它匹配除了换行符之后的所有内容,依此类推。最后一行是可选的,以说明最后一行。

[^\n]+[\n][^\n]+\n[^\n]+\n?