微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式 – 使用正则表达式进行Perl排序

我有一个像这样的perl数组字符串:

my @arr = ( "gene1 (100)","gene2 (50)","gene3 (120)",... );

如何用括号中的整数对数组进行排序?

解决方法

显示了直截了当的方式.排序块将$aa和$bb分别设置为$a和$b中的数字值.然后< =>用于数字比较它们.

除非基本技术证明太慢,否则不需要更加模糊的转换方法.

use strict;
use warnings;
use 5.010;

my @arr = ( "gene1 (100)",);

my @sorted = sort {
  my ($aa) = $a =~ / \(  (\d+)  \) /x;
  my ($bb) = $b =~ / \(  (\d+)  \) /x;
  $aa <=> $bb;
} @arr;

say for @sorted;

产量

gene2 (50)
gene1 (100)
gene3 (120)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐