使用 Perl 提取所有可能的子字符串 [英] Use Perl to extract all possible substrings
本文介绍了使用 Perl 提取所有可能的子字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
$str="abcde"
我想要输出数组
a,b,c,d,e,ab,bc,cd,de,abc,bcd,cde,abcd,bcde,abcde.
即从左到右移动,所有不同长度的所有可能组合.
ie moving from left to right, all possible combinations of all different lengths.
此外,还有删除重复元素的附加功能,例如
Also, additional function to remove duplicate elements, like
$str="abcdd"
数组中可能有很多重复项
may have many duplicate items in array
这是我试过的
for ($j=1;$j<=$n;$j++) {
my @tmp = unpack("(A$j)*", $seq);
print "@tmp\n";
}
推荐答案
这是一个极其简单的问题.这个程序用一行来解决它,虽然双循环可能会更清楚.
This is an extremely simple problem. This program solves it in a single line, although a double loop would probably be clearer.
use strict;
use warnings;
use 5.010;
my $str = 'abcde';
my @list;
push @list, $str =~ /(?=(.{$_}))/g for 1 .. length $str;
say join ',', @list;
输出
a,b,c,d,e,ab,bc,cd,de,abc,bcd,cde,abcd,bcde,abcde
这篇关于使用 Perl 提取所有可能的子字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文