首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Perl中获得连续的单词对

如何在Perl中获得连续的单词对
EN

Stack Overflow用户
提问于 2011-11-14 12:54:47
回答 4查看 148关注 0票数 3

用这句话:

代码语言:javascript
复制
my $sent = "Mapping and quantifying mammalian transcriptomes RNA-Seq";

我们希望得到所有可能的连续单词对。

代码语言:javascript
复制
my $var = ['Mapping and',
           'and quantifying',
           'quantifying mammalian',
           'mammalian transcriptomes',
           'transcriptomes RNA-Seq'];

有没有一种简洁的方法呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-14 13:01:34

是。

代码语言:javascript
复制
my $sent = "Mapping and quantifying mammalian transcriptomes RNA-Seq";
my @pairs = $sent =~ /(?=(\S+\s+\S+))\S+/g;
票数 7
EN

Stack Overflow用户

发布于 2011-11-14 13:02:54

这是可行的:

代码语言:javascript
复制
my @sent = split(/\s+/, $sent);
my @var = map { $sent[$_] . ' ' . $sent[$_ + 1] } 0 .. $#sent - 1;

例如,只需将原始字符串拆分成一个单词数组,然后使用map迭代地生成所需的对。

票数 2
EN

Stack Overflow用户

发布于 2011-11-14 13:10:24

一种(可能不明智的)依赖于操作符求值顺序但不依赖于花哨的正则表达式或索引的变体:

代码语言:javascript
复制
my @words = split /\s+/, $sent;
my $last = shift @words;
my @var;
push @var, $last . ' ' . ($last = $_) for @words;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8117494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档