簡體   English   中英

如何在不使用Perl中的正則表達式的情況下在文件中找到特定行?

[英]How can I find a specific line in a file without using regular expressions in Perl?

我有一個文件,我想使用File :: Slurp模塊讀取,然后搜索該文件的特定行。 我知道Perl有正則表達式,但我正在搜索的字符串是用戶生成的,所以不要擔心逃避一切。 我可以編寫一個foreach循環來執行此操作但是想知道Perl中是否有一個函數可以為我執行此操作? 我在網上看到的關於在Perl中查找文本的一切都使用正則表達式。

你可以使用正則表達式。 你不必擔心逃避一切,Perl有這個的quotemeta函數(或者“\\ Q \\ E”)。

像這樣?

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>
    ;

你能用q()來使用字符串文字嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM