perl匹配文件中的多行模式

时间:2013-05-21 05:22:29

标签: regex perl

我有一个程序,它逐行读取文件,并在模式匹配时获取数据 目前它提取的图案如
function abc (int a, int b)
但我有一些功能,如
function xyz (int a, \n
int b)

由于文件被逐行读取,它不匹配。

是否有可能以更好的方式阅读文件,或者我应该使用明显的获取多行的技术。

1 个答案:

答案 0 :(得分:2)

您需要一次读取多行。如果文件不是太大,你可以将整个文件啜饮(例如http://www.perl.com/pub/2003/11/21/slurp.html),然后使用单行正则表达式(使用s选项,例如/stuff.next line / s)。

编辑多个匹配项的示例* g选项允许您获得所有匹配。一个示例用法是在while循环中,每次评估正则表达式时,您将获得下一个匹配。 有关详细信息和示例,请参阅Perl iterate through each match

while($string=~/(regex)/g){
    DoSomething($1);
}

编辑修正错误