在Perl中,如何将一个字符串与其他字符串列表进行匹配?

马修

我想$columns[2]对照一小串字符串检查数组中的元素我现在拥有的方式是

if (   $columns[2] eq 'string1' 
    || $columns[2] eq 'string2' 
    || $columns[2] eq 'string3' 
    || ...) { 
   ...
}

似乎必须有一个比所有OR更好的方法。

亨特·麦克米伦

这恰好grep是为了:

my $element_exists = 
   grep { $columns[2] eq $_ } qw(string1 string2 ... stringN);

一种替代方法是使用first,一旦找到匹配项,它将停止处理。这样,如果您的第一个字符串匹配$columns[2],则不必比较其余的n-1个字符串:

use List::Util qw/first/;

my $element_exists = 
   defined first { $columns[2] eq $_ } qw(string1 string2 ... stringN);

您也可以any为此目的(如下面的@ThisSuitIsBlackNot建议),略有不同的是,首先返回与条件匹配的元素的值,任何返回布尔值:

use List::Util qw/any/;

my $element_exists = 
   any { $columns[2] eq $_ } qw(string1 string2 ... stringN);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个字符串与其他3个字符串进行比较?

如何将一个字符串列表与另一个字符串列表匹配?

在其他字符串列表中查找一个字符串

如何将一个字符串与一组其他字符串进行比较

连接一个字符串列表,中间有其他字符串

如何将一个字符串拆分为一个长度为3的字符串列表?

给定一个字符串列表,如何检查这些字符串是否在列表中?

C#-将一个字符串变量与其他多个字符串比较(String.Equals)

如何寻找另一个字符串中的字符串列表?

如何知道一个字符串是否属于python中字符串列表的组合?

将一个字符串列表与另一个字符串列表进行比较

如何将一个字符串列表变成一个对象?

如何将一个字符串与另一个字符串匹配并为其返回 true?

显示多个字符串列表中的一个字符串

如何将一个字符串值与另一个字符串值进行比较?

如何将一个字符串从 1 个函数输入到其他 2 个函数中,并在 python 中打印?

如果第一个字符与列表中的另一个字符串元素匹配,则删除字符串列表中的字符串元素

根据字符串中的第一个字符,找到字符串列表中元素的第一个匹配项

如何将列表的子字符串转换为一个字符串

如何从字符串列表中的每个字符串中删除最后一个字符

将dataframe列中的一个字符串列解析为许多其他列

如何使用Keras对一个字符串列表进行热编码?

python - 如何将字符串列表中字符串的所有第一个字符、字符串的所有第二个字符等分组到字符串列表中

如何将一个字符串数组存储到另一个字符串数组中?

如何将列表中的元素转换为一个字符串?

Python:根据另一个字符串对相似字符串列表进行排序

从熊猫数据框中的列中找到一个字符串,该字符串与另一个字符串列表中的任何项目匹配

如何将一个字符串分成2个字符串

将一个字符串附加/连接到字符串列表的元素(Python 3.5)