我有2个数组列表,如果有任何单词匹配,我想找出它,获取两个值。
For examples
array1 array2
int1<->int2 int9<->int1 --->Matched as Int1 is common. Get both the values(e.g int1<->int21,int9<-
int3<->int4 int10<->int11 ->> not matched
int5<->int6 int13<->int14-->> no matched
int7<->int8 int8<->int15 -- Macthed int8 Get $var1=int7<->int8,$var2=int8<->int15
希望有道理。如有任何疑问,请让我知道。
尚不清楚您想要什么,但是也许这是:
my @a = qw(int1<->int2 int3<->int4 int7<->int8);
my @b = qw(int9<->int1 int10<->int11 int8<->int15);
for my $i (0..$#a) {
my ($w1, $w2) = ($a[$i] =~ /([^<]+)<->(.+)/);
if (index($b[$i],$w1)!=-1 || index($b[$i],$w2)!=-1) {
print "match: $a[$i], $b[$i]\n";
}
}
说明:有两个(并行)数组a
和b
,其中要比较一致的元素。通过提取a
元素的两个子字符串来比较它们。每个都经过测试,以查看其中一个是否是b
元素的子字符串。如果其中一个是子字符串,则将其视为匹配项。(index
返回子字符串的索引;如果不存在子字符串,则返回-1。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句