用这句话:
my $sent = "Mapping and quantifying mammalian transcriptomes RNA-Seq";我们希望得到所有可能的连续单词对。
my $var = ['Mapping and',
'and quantifying',
'quantifying mammalian',
'mammalian transcriptomes',
'transcriptomes RNA-Seq'];有没有一种简洁的方法呢?
发布于 2011-11-14 13:01:34
是。
my $sent = "Mapping and quantifying mammalian transcriptomes RNA-Seq";
my @pairs = $sent =~ /(?=(\S+\s+\S+))\S+/g;发布于 2011-11-14 13:02:54
这是可行的:
my @sent = split(/\s+/, $sent);
my @var = map { $sent[$_] . ' ' . $sent[$_ + 1] } 0 .. $#sent - 1;例如,只需将原始字符串拆分成一个单词数组,然后使用map迭代地生成所需的对。
发布于 2011-11-14 13:10:24
一种(可能不明智的)依赖于操作符求值顺序但不依赖于花哨的正则表达式或索引的变体:
my @words = split /\s+/, $sent;
my $last = shift @words;
my @var;
push @var, $last . ' ' . ($last = $_) for @words;https://stackoverflow.com/questions/8117494
复制相似问题