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

前端之家收集整理的这篇文章主要介绍了正则表达式 – 使用正则表达式进行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)

猜你在找的正则表达式相关文章