如何在不使用Perl中的正则表达式的情况下在文件中找到特定行?

时间:2009-02-03 18:52:03

标签: regex perl parsing

我想要使用File::Slurp模块读取文件,然后在该文件中搜索特定行。我知道Perl有正则表达式,但我正在搜索的字符串是用户生成的,所以不要担心逃避一切。我可以编写一个foreach循环来执行此操作但是想知道Perl中是否有一个函数可以为我执行此操作?我在网上看到的关于在Perl中查找文本的所有内容都使用正则表达式。

3 个答案:

答案 0 :(得分:17)

您可以使用正则表达式。你不必担心逃避一切,Perl有quotemeta函数(或者“\ Q \ E”)。

答案 1 :(得分:2)

喜欢这个?

use List::Util qw<first>;

my $line 
    = first { index( $_, $something_users_are_looking_for ) > -1 } 
      <$file>
    ;

如果你想要他们所有人。

my @lines
    = grep { index( $_, $something_users_are_looking_for ) > -1 } 
      <$file>
    ;

答案 2 :(得分:0)

你能使用q()来使用字符串文字吗?

print(q(This string can contain regex: (\n\t*\n)(\n)));