请问在Perl环境下,如何通过正则表达式在多行记录中查找出包含字符串A但是不包含字符串B的内容。
举例如下:iamamaniamateacheriamafootballplayersheisagirl如何通过正则表达式找出包含“iam”,但是不包含“player”的记...
举例如下:
i am a man
i am a teacher
i am a football player
she is a girl
如何通过正则表达式找出包含“i am”,但是不包含“player”的记录,也就是说通过正则表达式查出以下结果:
i am a man
i am a teacher
有没有一行就能表达出来的方式…… 展开
i am a man
i am a teacher
i am a football player
she is a girl
如何通过正则表达式找出包含“i am”,但是不包含“player”的记录,也就是说通过正则表达式查出以下结果:
i am a man
i am a teacher
有没有一行就能表达出来的方式…… 展开
6个回答
展开全部
#!perl
#
open FILE, "fortest.txt";
while (<FILE>)
{
$line = $_;
print $line;
if($line =~ /.*a.*/ && $line !~ /.*b.*/)
{
$temp .= $line;
}
}
close FILE;
open FILE, ">new.txt";
print FILE $temp;
close FILE;
已测试,可以实现功能
#
open FILE, "fortest.txt";
while (<FILE>)
{
$line = $_;
print $line;
if($line =~ /.*a.*/ && $line !~ /.*b.*/)
{
$temp .= $line;
}
}
close FILE;
open FILE, ">new.txt";
print FILE $temp;
close FILE;
已测试,可以实现功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(<>){print $_ if (/i am/ && !/player/)};
保存为check.pl
check.pl 1.txt
输出结果:
i am a man
i am a teacher
因为有先后顺序的问题,貌似一句话没有办法满足。
保存为check.pl
check.pl 1.txt
输出结果:
i am a man
i am a teacher
因为有先后顺序的问题,貌似一句话没有办法满足。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#!/usr/bin/perl
#Define develop information here
$ApplicationVerion="1.0";
#Import additional module here
use Getopt::Std;
#Generate application run time variable here
$ApplicationExecutePathAndName=$0;
#Define global constant here
$DataFile="./DataFile.txt";
#Define global variable here
#Define function here
#Main code start here
open(FILE, $DataFile) || die "can not open the file: $DataFile";
while (defined ($Eachline =<FILE>))
{
chomp $Eachline;
if($Eachline=~/i am/)
{
if($Eachline!~/play/)
{
print $Eachline."\n";
}
}
}
close FILE;
#Main code end here
#Define develop information here
$ApplicationVerion="1.0";
#Import additional module here
use Getopt::Std;
#Generate application run time variable here
$ApplicationExecutePathAndName=$0;
#Define global constant here
$DataFile="./DataFile.txt";
#Define global variable here
#Define function here
#Main code start here
open(FILE, $DataFile) || die "can not open the file: $DataFile";
while (defined ($Eachline =<FILE>))
{
chomp $Eachline;
if($Eachline=~/i am/)
{
if($Eachline!~/play/)
{
print $Eachline."\n";
}
}
}
close FILE;
#Main code end here
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@result = $subject =~ m/^i\sam.+(?<!player)$/mg;
追问
能解释一下吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/i am/ && !/player/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询