perl学习笔记7 z

52 篇文章 0 订阅

1.  单引号字串是包含在一对单引号内的任何字符序列。Perl认为包含在单引号内的每一个字符都不具有任何特殊的意义。唯一的两个例外是换码序列反斜杆单引号(/,它代表字串内一个应保持原样的单引号;以及两个连续的反斜杠(//),它代表字串内一个应保持原样的反斜杠。

2.  双引号是包含在一对双引号内的任何字符序列。在双引号字串中,可包含换行符(/n)、制表符(/t)或其他换码序列字符。Perl会把换马序列的结果字符插入双引号字串中。

换码系列

含义

/n

换行

/r

回车

/t

制表符

/”

字面的双引号

/’

字面的单引号

//

字面的反斜杠

/$

字面的美元符

/@

字面的@字符

/%

字面的%字符

/u

大写下一个字符

/l

小写下一个字符

/b

退格

 

3.  Perl提供了两个运算符以简化字串的构造并提高它的可读性。

Ø         q运算符把他的参数封闭在单引号中。如:

q ( Don’t cross the street )

q运算符会用单引号来替代开括号和闭括号。注意,对于单词“Don’t”中的嵌套单引号,没有使用换码序列。

Ø         qq运算符把他的参数封闭在双引号中。它的结果字串拥有一般双引号字串的所有特征,包括插入换码序列和变量。如:

qq ( Tim ask, “What time is it?”)

注意:嵌套的双引号不需要换码序列。

Ø         qr,运算符用来创建和编译常规表达式。如:

$pattern = qr ( snow );

 

4.  “Here”文档

Perl允许程序员“引用”代码块,如下:

<<标识符;

文本行

文本行

标识符

利用上面的”Here”文档,程序员可以创建跨越多行代码的字串。

Ø         注意在<<之后,必须加一个“结束字串”。也就是说,在标识符之后必须加一个标准的分号,从而定义一个“Here”文档的开始。

Ø         注意在<<和标识符之间是没有空格的。

Ø         另外,为了让perl顺利的识别出标识符,不要为其加上引号,而且必须将结束标识符放在一个空行的起始处——该行不可放置其它任何代码,包括文件结束标志(EOF)(用来结束一个文件的特殊标记)。

Ø         假如结束标识符在程序的最后一行,那么必须在标识符后键入回车符。

Ø         Here”文档最开始的标识符可以加引号,而用于结束的标识符却不可以加引号。

Ø         如果标识符不加引号或双引号,那么字串继承了双引号字串的特性,包括插入转码序列和变量。

Ø         如果标识符加上单引号,字串继承单引号的特征。

Ø         Here”文档常用在CGI脚本中使用,它是输出大量HTML而不需多次调用print函数的便捷方法。

 

print  <<DONE;

print  <<’DONE’;

$variable =  <<DONE;

$variable =  <<’DONE’;

 

5.  基本字串函数

Ø         substr函数返回一给定字串的子串;使用语法如下:

substr ( string , offset ,length ,replacement )

 

²        该函数返回从字串位置offset开始,长度为length的子串。可以用replacement(它可能是字串或包含资产的变量)来替代函数要返回的子串。

²        如从字串的开始处提取子串,offset必须设置为0

²        offsetlength可正可负,如果是负的,将从字串的结束倒数offset的位置开始提取子串。Length为负时,强制函数从字串结束处开始提取,直到倒数length个字符的位置。Length参数为可选项,如果length参数缺省,函数从倒数offset处开始提取直到字串结束。

 

Ø         ucuppercase函数lc( lowercase)用于切换表达式中每个字符的大小写状态并将结果字符串返回。uc函数从参数中返回大写字串;lc函数从参数中返回小写字串。如果函数参数缺省,则应用于特殊变量$_

Ø         length函数返回字符表达式的长度。函数的返回值取决于参数是单引号字串或双引号字串。换码序列/n/t只有当他们欻县在双引号中才会以换行符或制表位插入,否则,视为两个字符。函数length的参数必须是标量数值。

当变量$string作为参数传递给length函数,函数把它当作双引号封闭下来的字串处理。

Ø         chopchomp函数

²        chop函数用于移除字串最后一个字符,并返回该字符。而一般程序员使用这个函数移除用户输入行结束处换行符。

²        chop函数的参数可为列表变量。Chop函数移去列表参数中每个字串的最后一个字符。因为函数改变它的参数,所以,参数不需要一个文本列表或一个文本字串。

²        如果参数缺省,函数默认地应用于特殊变量$_

²        $/  输入记录分隔符。$/ 默认值为换行符。

²        chomp函数。如果$/的默认值为换行符,字串的最后一个字符匹配特殊变量$/,那么chomp函数将保证只移除换行符。如果提供列表字串作为参数,chomp函数将移除列表字串中每个字串的最后一个字符。如果没有提供参数,$_将作为默认参数。它的参数不需要时文本列表或文本字串。Chomp函数返回移除字符数(该数为标量)。

²        如果特殊变量$/包含空字串(“ ”),chomp函数移除字串结尾的所有换行符。

 

Ø         函数index和函数rindex

²        函数index返回给定字串在另一给定字串中的第一出处的位置,它使用如下语法:

index ( string, substring, startPostion )

该函数从字串startpostion处的字符开始查找子串,直到原字串中第一次发现子串或字串结束。如果子串没有找到,函数返回-1。字串可以是文本或标量。注意,startpostion参数十可选的。缺省该参数,函数将从字串的开始处查找。

²        函数rindex功能基本上与index相同,除了它以反方向进行查找,

 

Ø         函数join

join函数语法:

       join ( separator, list )

该函数用于将列表中的个体字串合并成一个字串。返回的字串包括列表中的每个字串,并用特定的分隔符分开。分隔符可以是任何字串,但一般用逗号、冒号或其它适用的字段分隔符。例如:

join ( ‘and’, (1..5));

 

Ø         split函数

split函数语法如下:

       split ( /RegularExpression/, string, limit)

²        它用于查找字串并将其分解成独立的字段。一个字段包含两个定界符间(分隔符)的每个字符。常规表达式中每个非重叠匹配字符都可以认为是字段分隔符。

²        在“使用列表场合”下,split函数将原字串分解成独立的字段并以列表形式返回。在“使用标量场合”下,函数返回分解后的字段数。如果找不到匹配,函数将原字串返回为止包含一项的单项列表。参数limit限定了split函数可分解的最大字段数。

²        Split函数中的所有参数都是可选的。参数从右至左依次缺省。limit参数缺省,由空字串组成的任何字段将不返回在列表中。如果string参数缺省,函数将操作特殊变量$_。如果所有参数都缺省,函数使用空白常规表达式/s+作为字段分隔符。

 

Ø         tr / / /转换运算符

类似于替代运算符,转换运算符用特定字符来替代字串中找到的字符。Tr运算符的语法格式如下:

       tr / searchCharacters / replacementCharacters /

转换运算符使用绑定运算(=~)在标量变量(字串)中查找searchCharacters中的特定字符,并用replacementCharacters中相应得字符替代他们。如果searchCharacters中的特定字符多于replacementCharacters中的字符,多余的特定字符用replacementCharacters中的最后一个字符替代。如果不绑定运算符,运算符查找和修改特殊变量$_searchCharactersreplacementCharacters中的字符是个体字符或逻辑群字符(如:0~9A~Z

       $existingString =~ tr / a-z / A-Z/;

上式将变量中的小写字母替换为大写字母。

       $existingString =~ tr / ABC / +-*/;

A+替代,B-替代,C*替代。

 

修改符

含义

/c

替代searchCharacters的补集

/d

删除字串中没有相应替代字符的字符

/s

忽略连续的、重复的匹配

 

例如:

$example =~ tr / ABCDE / ab / d;

替换找到的AB,却删除找到的CDE

 


<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值