在perl中使用filereader查找一行
我创建了一个文本框。我想通过读取文本文件并使用Perl将每一行与文本进行比较来控制用户在文本框中写入的内容。在我的代码中,我填写了在perl中使用filereader查找一行,perl,filereader,param,Perl,Filereader,Param,我创建了一个文本框。我想通过读取文本文件并使用Perl将每一行与文本进行比较来控制用户在文本框中写入的内容。在我的代码中,我填写了param('text') open(DATA),=~运算符的右侧必须是正则表达式 有关更多详细信息,请参阅。while() while (<DATA>) { chomp; if (param('text') =~ /\Q$_/) { print $_; } } { 咀嚼; 如果(参数('text')=~/\Q$\uu/
param('text')
open(DATA),=~运算符的右侧必须是正则表达式
有关更多详细信息,请参阅。while()
while (<DATA>)
{
chomp;
if (param('text') =~ /\Q$_/)
{
print $_;
}
}
{
咀嚼;
如果(参数('text')=~/\Q$\uu/)
{
打印美元;
}
}
以下内容可能会有所帮助:
use strict;
use warnings;
my $text = <<END;
This is just a BU.NCH of text
in a here document that will
be used for some matching in
just a little bit.
END
while (<DATA>) {
chomp;
if ( $text =~ /\b\Q$_\E\b/i ) {
print $_, "\n";
}
}
__DATA__
this
some
bu.nch
a
hello
world
在尝试匹配从文件中读取的单词之前,您需要先选择它,以删除记录分隔符(如果有)。该分隔符通常是\n
。您还需要考虑以下几项:
是否需要不区分大小写的匹配
转义单词中可能存在的任何元字符
强制单词边框以防止字符串内匹配
上面的第(1)项是通过使用/i
修饰符来实现的。第(2)项是通过在正则表达式中包含“word”来完成的,如:\Q$\ue
(\Q
uote meta;\E
nd Quote meta)。最后一项使用\b
:\b\Q$\ue\b
希望这有帮助!试试这个
my $text = param('text');
open(DATA, "<baba.txt") or die "Couldn't open file file.txt, $!";
while(<DATA>)
{
if($_=~ /$text/ )
{
print $_;
}
}
my$text=param('text');
open(DATA),“实际上,这对我的情况来说还不够,因为用户post mark 1990和我想控制他们是否可以写1990。@user3297904从文件中发布一些行,用户输入示例。他们将发布mark 1990、steve 1890,在我的文本文件中只写1990 1890 1991,每行只有一个日期
this
some
bu.nch
a
my $text = param('text');
open(DATA, "<baba.txt") or die "Couldn't open file file.txt, $!";
while(<DATA>)
{
if($_=~ /$text/ )
{
print $_;
}
}