Perl(格式和字符串处理) z

Perl语言的字符串处理 Perl的字符串处理功能非常强大,能够满足我们在文本处理中的多种需求。从基本的字符串操作到复杂的正则表达式,Perl的灵活性和高效性都使得它成为了文本处理的首选工具之一。通过理解和掌握Perl中的字符串处理方法,程序员可以更加自如地处理各种文本数据,也为其他语言中字符串的处理提供了宝贵的经验。应用Perl进行字符串处理,无论是简单的文本操作还是复杂的文本分析,都能展现出高效与优雅,是进行数据处理的理想选择。 阅读详情

 

学习Perl推荐使用Perl IDE(功能虽然无法和VS 2005,Eclipse 3.1那样功能那样强大),但是其支持断点处理功能,已经比直接使用命令行功能强大多了。

此免费软件的下载点:http://open-perl-ide.sourceforge.net/

其他Perl软件列表看此推荐:http://www.shengfang.org/blog/p/perlidesumm.php

 

Perl格式处理

#1.format

format STDOUT=

@<<<<<<<<@||||||||@>>>>>> @.## @.######

$string1,$string2,$string3,$pi,$pi

.

$string1="zhang";

$string2="love";

$string3="chan";

$pi="3.1415926";

write;

##########

$display=1;

if($display)

{

  $here= <<EOD;

  zhang

  bufeng

  love

  China .

EOD

  print "$here/n";

}

########

$: ="";

format STDOUT=

Name:^<<<<<<<<<<

     $person

Sex:^<<<

     $person

Age:^<

     $person

.

$person="zhangbufengmale23";

write;

########

format standformat_top=

@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

"Page $%"

 

        Employees

FirstName   LastName    ID      Extension

-----------------------------------------

.

format standformat=

@<<<<<<<<<<<@<<<<<<<<<<<@<<<<<<@<<<<<

$firstname  $lastname   $ID    $extension

.

$firstname=" Cary ";

$lastname="Grant";

$ID="123";

$extension="x45";

 

open(FILEHANDLE,">>D://perlproject//page.txt") or die("can't open this file");

select FILEHANDLE;

$~=standformat;

$^=standformat_top;

$==1;

for($loop=1;$loop<10;$loop++)

{

  write;

}

Perl字符串处理

熟悉其最强大的三个函数:substr,pack,unpack!

#大小写处理函数 lc(转为小写) uc(转为大写)

$text="ZhangBufeng";

$text2=lc $text;

$text3=uc $text;

print "$text2/n";

print "$text3/n";

#将第一字母变为小写(lcfirst),将第一个字母大写(ucfirst)

$string="zhang";

$string2=lcfirst $string;

$string3=ucfirst $string;

print "$string2/n";

print "$string3/n";

#顺序查找string位置(index),逆序查找string位置(rindex)

$string="zhang bu feng zhang bu feng";

$position1=index($string,"bu");

$position2=index($string,"bu",10);

$position3=rindex($string,"zhang");

$position4=rindex($string,"zhang",10);

print "$position1,$position2,$position3,$position4/n";

#获取子串函数substr,功能非常强大,可以直接支持以一个字符串代替字符串的一个子串。

#字符串处理的MVP

$text="Zhang bufeng 爱 ChanChan";

$replace_to="爱";

$replace_with="喜欢";

substr($text,index($text,$replace_to),length($replace_to),$replace_with);

print "$text/n";

#pack和unpack函数用于字符串的打包和解包,功能非常强大,支持多种打包格式

#字符串处理的MVP

$decimal=17;

$newdecimal=unpack("B32",pack("N",$decimal));

print "$newdecimal/n";

 

$string="张步峰爱中国";

@array1=unpack("c*",$string);

@array2=unpack("C*",$string);

print (join(",",@array1),"/n");

print (join(",",@array2),"/n");

$string1=pack("c*",@array1);

$string2=pack("C*",@array2);

print "$string1/n";

print "$string2/n";

 

#打印格式sprintf

$value=1234.56789;

print sprintf "%.4f/n",$value;

#字符串比较函数 eq,ne,cmp,lt,gt,le,ge.使用cmp就好。

$string1="步峰";

$string2="步峰";

if($string1 eq $string2)

{

  print "$sting1==$string2/n";

}

if($string1 ne $string2)

{

   print "$string1!=$string2/n";

}

if( ($string1 cmp $string2)==0)

{

   print "$string1==$string2/n";

}

$string1="zhang";

$string2="chan";

if($string1 lt $string2)

{

  print "left < right /n";

}

if($string1 gt $string2)

{

  print "left > right /n";

}

if($string1 le $string2)

{

  print "left < right /n";

}

if($string1 ge $string2)

{

  print "left > right /n";

}

#

$string="张步峰爱中国";

@array=split(//,$string);#这种方法无法将其进行分成"张","步","峰","爱","中","国"等单字

print (join(",",@array),"/n");

 

#演示中文字符夹带英文字符的反序(使用了多个函数)

print "------begin-----/n";

$string1="中国love!张步峰";

@array=unpack("C*",$string1);

$length=$#array;#此数组的最后一个下标

for(;$length>=0;)

{

   if($array[$length]<=128)

   {

     #英文或者标点

     push(@array2,$array[$length]);

     $length=$length-1;

   }

   else

   {

     #中文字符

     push(@array2,$array[$length-1]);

     push(@array2,$array[$length]);

     $length=$length-2;

   }

 

}

$string2=pack("C*",@array2);

print "$string2/n";

#

$dir=dir;

print qx/$dir/;

@name=qw/zhang bu feng chan chan/;

print join(",",@name);s

 

参考资料:《Perl 技术内幕》 Black Book Steven Holzner 

 

 




<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
Perl正则与文件处理实战 本文涵盖Perl中正则表达式的常见用法,如模式匹配、转义字符、条件替换,以及文件属性检查、目录操作和文本处理技巧。同时介绍了随机数游戏、版权声明添加等实用程序的编写方法,适合掌握Perl基础到进阶的应用开发。 阅读详情

相关推荐

Perl编程实践:信号处理与模式匹配

本博客介绍了多个使用Perl语言实现的编程练习,包括查找子字符串位置、Fizz-Bin-Sausage问题、因数计算、奇偶与质数判断、目录切换、信号处理、文件模式匹配、时间格式化输出以及基础数学运算等内容。重点讲解了Perl中given-when结构、智能匹配、正则表达式、文件操作和系统调用等核心技术的应用。

blue42的博客 757

perl学习笔记八----格式化输出

 格式化输出在一个perl中可以有多个format。一 打印的基本步骤1、将系统变量$~设成所要使用的格式      2、调用函数write     函数write将结果输出到标准输出文件STDOUT,我们也可以使它将结果 输出到任意其它的文件中。最简单的方法就是把文件变量作为参数传递给write     例如 write (MYFILE);也可以通过如下方式     例如 select(MYFI

成长专栏 4461

【vivado PG学习】1 PG168:7 Series FPGAs Transceivers官方配置方法学习笔记

介绍: The 7 series FPGAs Transceivers Wizard LogiCORE™ IP 自动创建配置7系列fpga 收发器的HDL封装。向导可以配置一个或多个支持行业主流标准的高速串行收发器。或者从零开始支持各种自定义协议。 功能: 创建配置7系列fpga 收发器的HDL封装。 自动对模拟设置进行配置。 预定义了提供Aurora 8B/10B, Aurora 64B/66B, CEI-6G,DisplayPort, Interlaken, Open Base StationAr..

w0shishabi的博客 5万+

perl 格式化

printf中  一些使用细节如下: 1、在格式d、o、u或x中,如果整数值较大或可能较大,可加个l字符,意为长整型,如%ld。 2、%字符后加正整数表示该域的最小宽度,如果输出结果宽度不足,则向右对齐,前面用空格补足,如果该正整数以数字0打头,则补足字符为0。若%字符后为负整数,则结果向右对齐。 3、浮点数域值(%c、%f和%g)中可以指定小数点前后的宽度,如%8.3f意为总宽度为8

beauty77的专栏 658

从‘静态拍照’到‘动态录像’:用Malmquist指数讲好你的效率变化故事(附Stata/R代码)

本文深入探讨了如何利用Malmquist指数构建动态效率分析框架,从静态数据到动态叙事的转变。通过分解技术效率变化(EC)和技术进步(TC),结合Stata/R代码实现四种动态可视化方法,帮助研究者更直观地展示效率变化的动态特征。文章还提供了诊断性叙事结构和比较叙事技巧,助力决策者理解效率提升的来源与趋势。

weixin_32678995的博客 604

EFR32BG22 Thunderboard开发板 使用SPI 读取加速度计

Simplicity Studio v5 创建Silicon Labs蓝牙SoC EFR32BG22 Thunderboard模块的加速度计工程,模块上有一个ICM-20648 6轴运动跟踪设备,集成3轴加速度计和3轴陀螺仪功能,使用SPI接口跟EFR32BG22芯片连接。 我尽量以图片的形式展示(少打字): 将EFR32BG22的Thunderboard模块通过USB线插入到电脑,打开Simplicity Studio v5软件。 下面看重点: 点击搜索到的IO Stream: USART,点击Ins

qq_25727979的博客 1494

Perl入门学习(十)格式化输出

Perl入门学习(十)格式输出

m0_61544122的博客 1662

AMDGPU SVM VRAM Migration 实现详解

AMD正在基于DRM SVM框架重构SVM实现,该框架即将广泛应用。本文分析了AMD开发者提交的POC验证版本的技术方案。该架构分为三层:AMDGPU SVM映射层、DRM Pagemap通用框架层和AMDGPU迁移后端硬件驱动层。系统涉及三个地址空间转换:VRAM分配器空间、HPA/PFN空间和GPU PTE地址空间。关键数据结构包括设备级迁移基础设施amdgpu_pagemap、迁移临时BO包装器amdgpu_svm_bo等。该方案通过地址空间转换实现VRAM迁移功能,目前仍处于POC阶段,设计可能变更

图形/计算GPU的驱动与虚拟化技术分享园地 870

perl格式化输出

原文:http://man.ddvip.com/web/perl/perl10.htm     第十章 格式化输出 by flamephoenix 一、定义打印格式二、显示打印格式三、在打印格式中显示值  1、通用的打印格式  2、格式和局域变量  3、选择值域格式  4、输出值域字符四、输出到其它文件五、分页六、格式化长字符串七、用printf格式化输出    我们已经见过用...

zk1878的专栏 1567

Autosar NvM配置-手动配置Nvblock及使用-基于ETAS软件

NVM作为存储协议栈中最顶层的模块,是必须要掌握的。目前项目基本使用MCU带的Dflash模块,使用Fee模拟eeprom。在项目前期阶段,应该充分讨论需要存储的内容,包括应用数据,诊断数据等,用以评估Dflash空间是否够用。本文基于ETAS软件介绍NVBlock配置生成NVM参数及使用。使用NVBlock配置生成,基本不用手写代码,还是比较方便的。对于Nv block的划分,建议将同时写的一类数据放到一个block中,因为block除了data以外,Fee还会增加一些header数据,占用不少内存。

赞的博客 1885

计算机视觉安防监控升级:人脸识别与行为异常检测

计算机视觉安防监控升级:人脸识别与行为异常检测 ,人工智能,计算机视觉,大模型,AI,本文将深入探讨人脸识别与行为异常检测技术在安防监控中的应用,包括技术原理、算法实现、应用场景以及面临的挑战与解决方案。通过实际案例和代码示例,帮助读者更好地理解和掌握这些技术,为推动安防监控系统的智能化升级提供参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 23万+

Perl字符串处理

众所周知Perl处理字符串的功能非常强大,Perl(Practical Extraction and Reporting language)处理格式的功能也非常强大,这里我们就开始学习一些Perl的格式和字符串处理。 熟悉其最强大的三个函数:substr、pack、unpack。 1、大小写处理函数 lc(转为小写) uc(转为大写) 。 $text="zhengwen feng"; $t...

renzhelife 847

[Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇、大数据分析20篇、图像识别30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的关注、点赞和转发就是对秀璋最大的支持,知识无价人有情,希望

杨秀璋的专栏 2万+

perl学习笔记8 z

1.  用printf和sprintf格式化输出函数printf有如下的格式化功能:a)         圆整浮点数至十进制的某位。b)        以小数点来对齐一列数。c)        右对齐和左对齐输出。d)        在输出行的准确位置插入文本字符。e)         以指数形数来显示浮点数f)         以八进制或十六进制的形式显示无符号的整数。g) 

1649

通用抓取————6D位姿估计

这意味着算法在没有物体的先验知识(如 CAD 模型)的情况下,依然能够通过神经网络捕捉物体的外观、形状和几何特征,生成相关的 6D 位姿估计。通过输入物体类别的描述,算法能够推断出该类别物体的位姿和尺度,无需特定物体的 CAD 模型。在这个坐标空间中,物体的位姿和尺度都是已知的,基于这个标准化表示,算法可以对输入图像中的物体进行 6D 位姿和尺寸的估计。○优势: ICP 是一种非常有效的位姿优化算法,特别适合精细调整物体的位姿,确保最终估计的位姿与真实物体的点云或模型高度一致。

具身机器人和通用AI 2382

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

perl语言文字处理模式

Perl语言的文字处理模式(Regular Expression)   如果在Unix中曾经使用过sde、awk、grep这些指令的话,相信对于Perl语言中的文字处理模式(Regular Expression) 应该不会感到陌生才对。在Perl语言中因为有这个功能,所以对于字符串的处理能力是非常强有力的。Regular Expression可视为用来处理字符串的一种模式(pattern),其

penion的专栏 912

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Perl语言的字符串匹配

在Perl中,字符串匹配是通过正则表达式(Regular Expressions)来实现的。正则表达式是一个强大的工具,可以用来描述字符串模式。通过正则表达式,我们可以轻松地查找、替换、分割和验证字符串内容。

2501_91339149的博客 664

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

在 Perl 下用strftime巧妙的处理时间

在 Perl 中处理时间,很多模块,很方便,但是刚开始玩的人,可能没有发现合适的模块,所以使用起来感觉很麻烦.通常大家都 localtime 搞得大家都很火大.我有幸和大师学习了一下,给大家推荐一下一个模块 strftime. 我们在推荐前,介绍一下 Perl 下取时间的今生前世吧.以前我想大家都是使用的 localtime 来取得当地日期时间和日期.这个函数如果在标量环境时,会...

dianyanlan2246的博客 345

perl字符匹配

如果在Unix中曾经使用过sde,awk,grep这些指令的话,相信对于 Perl 语言中的文字处理模式(Regular Expression)应该不会感到陌生才对。在Perl语言中因为有这个功能,所以对于字符串的处理能力是非常强有力的。Regular Expression可视为用来处理字符串的一种模式(pattern),其使用的格式为/pattern/。在Perl语言的程序中,经常可以看到类似语

finger0的专栏 8748

perl对于encode的用法 z

perl对中文的处理(encode,decode)最近在处理中文时遇到乱码的问题,google了一下,发现下面这篇文章。茅塞顿开! Perl从5.6开始已经开始在内部使用utf8编码来表示字符,也就是说对中文以及其他语言字符的处理应该是完全没有问题的。我们只需要利用好Encode这个模块便能充分发挥Perl的utf8字符的优势了。 下面就以中文文本的处理为例进行说明,比如有

619

perl的时间处理之localtime和strftime

大家都是使用的 localtime 来取得当地日期时间和日期。这个函数如果在标量环境时,会以字符串的形式来传回目前的时间和日期 。默认的 localtime 的函数是以 1970 到今天的秒来做整数计算的。默认这个程序会调用 time 的函数来给它提供一个值。 使用方法: 例如,print scalar (localtime)这个代码,它输出的结果将类似于Thu Sep 16 23:0

cnki_ok的专栏 2824

[Perl] 在 Perl 下处理时间的小技巧 strftime

[Perl] 在 Perl 下处理时间的小技巧 strftimeAug 21st, 2010 Leave a comment | Trackback<br />转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] <br />本文链接: http://www.php-oa.com/2010/08/21/perl-strftime.html<br />       在 Perl 中处理时间,很多模块,很方便,但是刚开始玩的人,可能没有发现合适的模块,所以使用起来感觉很麻烦。通常大家都

zxianyong的专栏 4023

Perl的字符匹配规则

在perl程序写作中常会用到=~和!~这两个运算符及s和t这二个函数来和文字处理模式/pattern/搭配而成一个运算式,如果能够活用这些指令的话,就可以很轻易地来处理一些字符串,现在就来介绍这些运算符及函数的用法

m0_46521476的博客 606
上一篇: Perl如何处理字符串 z
下一篇: Linux与windows文件互传技巧(by ftp) z
KataDoc360
博客等级 码龄18年 65粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值