使用 Perl 提取所有可能的子字符串 [英] Use Perl to extract all possible substrings

查看:31
本文介绍了使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆