Regex 如何在正则表达式中使用变量
我有一个带有一些值的数组Regex 如何在正则表达式中使用变量,regex,perl,Regex,Perl,我有一个带有一些值的数组 @array=("B_MY03", "D16", "DECAP2"); 如何使用每个值在包含该值的文件中查找模式 while(<$file>){ foreach $val(@array){ if( $_ =~ /^item\s\=\s\w+("GR\$key\",/){...} } } my@array=(“B_MY03”、“D16”、“DE
@array=("B_MY03", "D16", "DECAP2");
如何使用每个值在包含该值的文件中查找模式
while(<$file>){
foreach $val(@array){
if( $_ =~ /^item\s\=\s\w+("GR\$key\",/){...}
}
}
my@array=(“B_MY03”、“D16”、“DECAP2”);
my($re)=映射qr/$\u1/,加入“|”,映射quotemeta,@array;
while(){
#项目=类型(“GRB_MY03”、“DI”);
如果(/^Item\s*=\s*\w+\(“GR($re)”/){…}
}
my@array=(“B_MY03”、“D16”、“DECAP2”);
my($re)=映射qr/$\u1/,加入“|”,映射quotemeta,@array;
while(){
#项目=类型(“GRB_MY03”、“DI”);
如果(/^Item\s*=\s*\w+\(“GR($re)”/){…}
}
严格使用;
使用警告;
子列表\u至\u regexp{
本地$“=q(|);
我的@list=map quotemeta,@;
返回qr/@list/;
}
my@values=('value1','value2','value3');
我的$values\u re=list\u to\u regexp(@values);
而()
{
如果(/^item\s=\s($values\u re)$/x)
{
打印“数据的第$行;找到项目“$1”\n”;
}
}
__资料__
项目=价值3
项目=价值4
项目=值1
灵长类=猴子
灵长类=猩猩
项目=值1
灵长类=黑猩猩
严格使用;
使用警告;
子列表\u至\u regexp{
本地$“=q(|);
我的@list=map quotemeta,@;
返回qr/@list/;
}
my@values=('value1','value2','value3');
我的$values\u re=list\u to\u regexp(@values);
而()
{
如果(/^item\s=\s($values\u re)$/x)
{
打印“数据的第$行;找到项目“$1”\n”;
}
}
__资料__
项目=价值3
项目=价值4
项目=值1
灵长类=猴子
灵长类=猩猩
项目=值1
灵长类=黑猩猩
Item = Type("GRB_MY03", "DI");
my @array = ("B_MY03", "D16", "DECAP2");
my ($re) = map qr/$_/, join "|", map quotemeta, @array;
while(<$file>) {
# Item = Type("GRB_MY03", "DI");
if ( /^Item\s*=\s*\w+\("GR($re)"/ ) { ... }
}
use strict;
use warnings;
sub list_to_regexp {
local $" = q(|);
my @list = map quotemeta, @_;
return qr/@list/;
}
my @values = ('value1', 'value2', 'value3');
my $values_re = list_to_regexp(@values);
while (<DATA>)
{
if (/^ item \s = \s ($values_re) $/x)
{
print "On line $. of data; found item '$1'\n";
}
}
__DATA__
item = value3
item = value4
item = value1
primate = monkey
primate = orangutan
item = value1
primate = chimpanzee