【发布时间】:2011-08-04 22:14:24
【问题描述】:
如何使用 Perl 从文件中读取并将匹配的模式查找到文件中,而不是一次逐行查找整个文件?
【问题讨论】:
如何使用 Perl 从文件中读取并将匹配的模式查找到文件中,而不是一次逐行查找整个文件?
【问题讨论】:
通过在读取文件之前将local $/; 句柄添加到 perl 脚本的开头,将整个文件读入字符串。他们可以将您的正则表达式应用于生成的字符串。
构建包含整个文件的长 $string 后,您可以找到所有匹配项,如下所示:
@matches = $string =~ m/\s*rem/gi;
【讨论】:
g修饰符。像这样进行匹配:@matches = $string =~ m/\s*rem/gi;
$string =~ s/\n*//g;替换所有换行符
我知道这是旧的,但我遇到了同样的问题,发现答案比选择的答案更简单。 在 perl 可执行文件之后使用 '-0777'(或任何大于 -0400 的值)与 -p 或 -n 一起使用将更改默认分隔符,并且 perl 会将整个文件放入 $_
参考资料:
【讨论】: