阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Perl split字符串分割函数用法指南

269次阅读
没有评论

共计 2030 个字符,预计需要花费 6 分钟才能阅读完成。

导读 本文向大家简单介绍一下 Perl split 函数的用法,Perl 中的一个非常有用的函数是 Perl split 函数 - 把字符串进行分割并把分割后的结果放入数组中。

本文和大家重点讨论一下 Perl split 函数的用法,Perl 中的一个非常有用的函数是 Perl split 函数 - 把字符串进行分割并把分割后的结果放入数组中。这个 Perl split 函数使用规则表达式(RE),如果未特定则工作在 $_变量上。

Perl split 函数

Perl 中的一个非常有用的函数是 Perl split 函数 - 把字符串进行分割并把分割后的结果放入数组中。这个 Perl split 函数使用规则表达式(RE),如果未特定则工作在 $_变量上。

Perl split 函数可以这样使用:

$info="Caine:Michael:Actor:14,LeafyDrive"; 
@personal=split(/:/,$info);

其结果是:@personal=("Caine","Michael","Actor","14,LeafyDrive");
◆如果我们已经把信息存放在 $_变量中,那么可以这样:

@personal=split(/:/);

如果各个域被任何数量的冒号分隔,可以用 RE 代码进行分割:

$_="Capes:Geoff::Shotputter:::BigAvenue"; 
@personal=split(/:+/);

其结果是:@personal=(“Capes”,”Geoff”,”Shotputter”,”BigAvenue”);

但是下面的代码:

$_="Capes:Geoff::Shotputter:::BigAvenue"; @personal=split(/:/);

的结果是:@personal=("Capes","Geoff","","Shotputter","","","BigAvenue");

这个 Perl split 函数中单词可以被分割成字符,句子可以被分割成单词,段落可以被分割成句子:

@chars=split(//,$word);
@words=split(//,$sentence); 
@sentences=split(/\./,$paragraph);

在第一句中,空字符串在每个字符间匹配,所以 @chars 数组是一个字符的数组。>>

// 之间的部分表示 split 用到的正则表达式(或者说分隔法则)
\s 是一种通配符,代表空格
+ 代表重复一次或者一次以上。
所以,\s+ 代表一个或者一个以上的空格。
split(/\s+/,$line)表示把字符串 $line, 按空格为界分开。
比如说,$line=” 你好朋友欢迎光临我的网站 jb51.net”;
split(/\s+/,$line)后得到:
你好朋友欢迎访问我的网站 jb51.net

一般用法:@somearray = split(/:+/, $string); #括号可以不要。若不指定 $string, 则对默认变量 $_操作,两斜线间为分割符,可以用正则表达式,强悍异常。

在 perl 手册里,有一个用法不多见。即:split /PATTERN/, EXPR, LIMIT;关键就是这个 LIMIT 参数,可以节省不少事情。如果使用了 LIMIT,且是正数,表示分割成不多于 LIMIT 指定的数目的域。

通过制定 LIMIT,可以在很长 (分割产生几万个元素 or 域) 的行分割操作中,只返回关键的前几列的域值,减少了内存使用及时间消耗。比如一般的基因型数据,第一列通常是材料命名,需要通过材料名的判断取舍,这时候就可以这样用。my ($firstfield) = split /\t/, $someline, 1; 如果需要前面几列的值,这样的方式对大文件效率很好:my(undef, $var1, undef, undef, undef, $var2)=split /\t/, $someline, 6;

有网友对这种方式做了测试,显示较好。引用如下:
一个文件,每行都有 18 项,各项之间用 \t 分割,使用时用到了第 6 项,折腾了几种用法

复制代码代码如下:

my @array = split("\t",$_); my $var = $array[6];   测试文件平均用时 8.2s
 my($var) = (split("\t",$_))[6];  测试平均用时 5.1s
 my(undef,undef,undef,undef,undef,undef,$var) = split("\t",$_); 平均用时 3.53s
 my(undef,undef,undef,undef,undef,undef,$var) = split("\t",$_,7); 平均用时 3.52s
 my $var = (split("\t",$_,7))[6]; 平均用时 3.53s
看来后 3 种才是王道,如果需要使用多项也可以进行进行适当的变动。不过两项如果跨度比较大,3,4 应该是不错选择,5 就只能用中间数组。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2030字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7800523
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...