如何在Perl程序中的数组中只按任意顺序grep多个五个字符集?
@arr2 = grep(/[BCRZ]+/, @arr1);
@arr1
可以包含
CRZBBZTCCBBRZ
FJDLSFJSLFJS
CRZBBZCCBBRZ
只应采取像上一行的行
答案 0 :(得分:3)
我认为这可能会做你想要的。如果字符串包含CBRZW
以外的任何字符,则拒绝该字符串。
use strict;
use warnings;
my @arr1 = qw/ CRZBBZTCCBBRZ FJDLSFJSLFJS CRZBBZCCBBRZ /;
my @arr2 = grep { not /[^CBRZW]/ } @arr1;
print "$_\n" for @arr2;
<强>输出强>
CRZBBZCCBBRZ
答案 1 :(得分:3)
如果您想要的是仅包含5个字符而不包含其他字符的行,则使用正则表达式:
/^[BRCZW]+$/
查找包含一个或多个5个字符集的字符串,但不包含其他字符。但是使用grep()对@ carol的解决方案可能更有效。它使用正则表达式来确定字符串是否包含任何不需要的字符,然后拒绝该行。