正则表达式 – 使用正则表达式进行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)

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...