加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中优雅地从字符串中分割成对的单词?

发布时间:2020-12-16 06:11:04 所属栏目:大数据 来源:网络整理
导读:在perl中,我有一个粗略的字符串 my $str = "one 10 two 20 three 30"; 现在,我想将该字符串拆分为字数对,但有 没有成功. 我以为我能做到 my @pairs = split /([a-z]+[^a-z]+)/,$str; 然后会有 $pairs[0] eq 'one 10 '$pairs[1] eq 'two 20 '$pairs[2] eq 'th
在perl中,我有一个粗略的字符串

my $str = "one  10 two   20   three    30";

现在,我想将该字符串拆分为字数对,但有
没有成功.

我以为我能做到

my @pairs = split /([a-z]+[^a-z]+)/,$str;

然后会有

$pairs[0] eq 'one  10 '
$pairs[1] eq 'two   20   '
$pairs[2] eq 'three    30'

但是,我明白了

$pairs[0] eq ' '
$pairs[1] eq 'one  10 '
$pairs[2] eq ' '
$pairs[3] eq 'two   20   '
$pairs[4] eq ' '
$pairs[5] eq 'three    30'

现在,我可以使用grep来获得我想要的结果:

my @pairs = grep {$_ =~ /S/} split /([a-z]+[^a-z]+)/,$str;

但我想知道是否有一个更优雅的解决方案来解决这个问题.

解决方法

不知道它是否是一个优雅的解决方案,你可以使用与/ g修饰符匹配:

my @pairs = $str =~ /(w+s+d+)/g;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读