需要查找具有单词FOO的短语的每个实例,并且在同一行之后的某个时间段有BAR。
格式如:[asdf_123/FOO_sdfsdsadasff.x] BAR 123
答案 0 :(得分:1)
一个简单的
FOO.*BAR
可能会做
语言结果为perl后更新
#!/usr/bin/perl
while (<DATA>) {
print if $_ =~ /FOO.*BAR/;
}
__DATA__
[asdf_123/FOO_sdfsdsadasff.x] BAR 123
illegal string
FOO without
without BAR
输出:
[asdf_123/FOO_sdfsdsadasff.x] BAR 123
答案 1 :(得分:0)
FOO.*BAR
怎么样;这有用吗?
答案 2 :(得分:0)
.*FOO.*BAR.*
应该可以正常工作。
答案 3 :(得分:0)
关于什么构成“短语”,这个问题有点含糊不清 但这可能是一种方法。
use strict;
use warnings;
my @samples = (
'asdf_123/FOO_sdfsdsadasff.x BAR 123',
'FOOBAR BARFOO /ssBARaa',
'asdf FOOkkBAR zzFOO BAR',
);
for (@samples)
{
my @phrases = / (\S*FOO\S*)\s (?=.*BAR) /xg;
print "'$_'\n" for @phrases;
}
__END__
输出:
'asdf_123 / FOO_sdfsdsadasff.x'
'FOOBAR'
'BARFOO'
'FOOkkBAR'
'zzFOO'