我有一个程序,它逐行读取文件并在匹配模式时获取数据。
目前它提取模式,
function abc (int a, int b)
但我有一些功能
,由于文件被逐行读取,它不匹配。
function xyz (int a, \n
int b)
是否可以以更好的方式读取文件,或者我应该使用获取多行的明显技术。
您需要一次读取多行。如果文件不是太大,您可以将整个文件放入(例如http://www.perl.com/pub/2003/11/21/slurp.html),然后使用单行正则表达式(使用s 选项,例如 /stuff.next line/s)。
编辑多个匹配的示例* g 选项允许您获取所有匹配。一个示例用法是在 while 循环中,每次评估正则表达式时,都会得到下一个匹配项。有关详细信息和示例,请参阅Perl 遍历每个匹配项。
while($string=~/(regex)/g){
DoSomething($1);
}
编辑固定错误