Perl中对混合字符串进行排序的方法

  介绍

小编给大家分享一下Perl中对混合字符串进行排序的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

Perl中的排序可以使用预定义的函数“排序”来完成,此函数使用快速排序算法对传递给它的数组进行排序。

癙erl中对混合字符串进行排序的方法"

为了比较使用数字的字符串,从字符串中获取数字是非常重要的。我们可以根据这些数字,对字符串数组进行排序。

substr()函数可以用于从字符串中提取这些数字。此函数将字符串中不包括数字的字符数作为参数。

<强>注意:数组中的所有字母数字字符串必须具有相同的大小。

示例:

使用严格;   使用5.010;      #用字母数字字符串定义数组值   我@x=qw (prin_4 Keys_8 pubg_12);   打印“原数组:\ n";   加入“打印;、“@x;   #使用sort()和substr()函数对数组进行排序   我@y={排序子串(一个美元,5)& lt;=比;substr (b美元,5)}@x;      #输出排序的数组   打印“\ n \ n排序的数组:\ n";   加入“打印;、“@y;

输出:

原数组:   prin_4、Keys_8 pubg_12      排序的数组:   prin_4、Keys_8 pubg_12

如果字母数字字符串有点复杂,执行上面的代码是一项艰巨的工作,因此,为了更简单,我们可以使用正则表达式。

例如:如果数组包含“Keys_8_keys”,那么很难处理这种情况,因此为了正确过滤字符串中的数字,可以使用正则表达式。

<强>注意:此方法不关心字母数字字符串是否具有不同的大小。

示例:

使用严格;   使用5.010;      #样品提取字符串   #数字   我$ str=& # 39; Key_8_key& # 39;;      #正则表达式提取号码   我的(美元)=$ str=~/(\ d +)/;      #输出提取的数字   打印“从Key_8_key中提取的数字是:美元数量\ n";      #用字母数字字符串定义数组   我@x=qw (pri_4 Key_8_key pubg_12);      #排序前的数组   打印“\ n排序前的数组:\ n";   加入“打印;、“@x排序;      #使用正则表达式   我@y={($=~/(\ d +)/) [0] & lt;=比;($ b=~/(\ d +)/) [0]} @x;      #排序后数组   打印“\ n \ n排序后数组\ n";   加入“打印;、“@y;

输出:

从Key_8_key中提取的数字是:8   排序前的数组:   Key_8_key、pri_4 pubg_12   排序后数组   pri_4、Key_8_key pubg_12

<强>注:强如果数组包含其中某些字符串中没有数字的字符串,则可以使用0代替该数字。要检查字符串中是否没有数字,请使用以下代码:

我@y=类{(($=~/(\ d +)/) [0] | | 0) (($ b=~/(\ d +)/) [0] | | 0)} @x;

示例:

# !/usr/bin/perl   使用严格的;   使用5.010;      #混合类型字符串的数组   我@x=qw (pri_4关键pubg_12);      #使用正则表达式   我@y={(($=~/(\ d +)/) [0] | | 0) & lt;=比;   (($ b=~/(\ d +)/) [0] | | 0)} @x;      #输出排序的数组   打印“排序后数组:\ n";   加入“打印;、“@y;

输出:

排序后数组:   pri_4,关键pubg_12

看完了这篇文章,相信你对Perl中对混合字符串进行排序的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

Perl中对混合字符串进行排序的方法