我有一个程序,它逐行读取文件,并在模式匹配时获取数据
目前它提取的图案如
function abc (int a, int b)
但我有一些功能,如
function xyz (int a, \n
int b)
由于文件被逐行读取,它不匹配。
是否有可能以更好的方式阅读文件,或者我应该使用明显的获取多行的技术。
答案 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);
}
编辑修正错误