perl学习笔记之

   

1 表达式修饰符if、unless、while、untile、foreach
2 DATA文件句柄:__DATA__标志着脚本的逻辑结束,并打开DATA文件句柄用于读取。
3 m运算符:如果包围正则表达式的定界符是斜杠,m运算符是可选的;如果忙乱变了定界符,则是要求的。
  格式:/Regular Expression/ or m#Regular Expression# or m(Regular expression)
  匹配修饰符:i-大小写无关  g-全局匹配   x-允许注释与空白  o-只编译模式一次
  s-嵌入新行时,将字符串作为单行处理  m-将字符串作为多行处理
4 给特殊标量$&赋值在上一次成功搜索中匹配的字符串。$'(备份引号)保存在匹配模式之前找到的内容,而$'(直接引号)保存模式匹配之后找到的内容。
5 s运算符和替换,格式:s/old/new/ or s(odl)/new/ or ...
  替换修饰符:以上提到的+e将夫换端作为表达式求值
6 格式绑定运算符:
  前面在默认模式空间$_变量上的模式搜索是隐式完成的,如果不将字符串存储在变量$_中,而且需要对字符串过行匹配或替换,就要使用模式绑定运算符=~或!~。它们还在tr函数中用于字符串翻译。
7 用于单字符的元字符:
  .-除新行外的任何字符               [a-z0-9]任何单字符
  [^a-z0-9]不在集合中的任何单字符     /d-一个数字(大写为非数字)
  /w-数字(字)字符(大写为非数字字母(非字)字符
 注意:
    s修饰符:点元字符和新行
    脱字符^
    POSIX字符类:用于确保跨平台可移植的工业标准(求反字符,只要在字符串前加^)
      [:alnum:]字母数字字符                  [:alpha:]字母字符
      [:ascii:]0-127数值字符                [:cntrl:]控制字符
      [:digit:]数字                         [:graph:]字母数字标点以外的非空字符
      [:lower:]小写                         [:print:]与[:graph:]同,但有空格
      [:punct:]标点                         [:space:]所有的空白字符
      [:upper:]大写                         [:word:]字母或下划线
      [:xdigit:]十六进制
8 白空元字符:(大写为非)
  /s-白空字符                   /n新行           /r回车
  /t制表位                      /h进纸
9 关闭贪婪性的元字符。通过在贪婪限定符之后放置问号,就关闭了贪婪性,搜索在第一个匹配后结束,而不是到最后一个。
10 锚点:
   ^行或字符串的开头              $行或字符串的末尾
   /A只匹配字符串的开头           /Z匹配字符串或行的末尾
   /z只匹配字符串的末尾           /G匹配前面的m//g离开之处
   /b匹配边界(大写为非边界)
  m修饰符用于控制$和^锚元字符的行为。含有新行的字符串作为多行对待。
11 记忆或捕获:如果正则表达式包含在括弧中,则创建子模式。子模式保存在特殊编号的标量变量中,从$1开始。这些变量以后用于程序并保持到发生其化成功的模式匹配,些是将其清除。即使想要控制贪婪元字符或前一例子中展示的交替行为,保存子模式也具有副作用.可以使用?:元字符取消子模式的捕获。
例:
$fruit="apple pears peaches plums";
$fruit=~/(.*)/s(.*)/s(.*)/;
print "$1/n";
print "$2/n";
print "$3/n";
print "-"x39,"/n";
$fruit="apples pears peaches plums";
$fruit=~/(.*?)/(.*?)/s(.*?)/;
print "$1/n";
print "$2/n";
print "$3/n";
(Output)
apples pears
peaches
plums
-----------------------
apples
pears
peaches
12 前后查找元字符:
/pattern(?=pattern)/正向前查找         /pattern(?!pattern)/负向前查找
(?<=pattern)/pattern/正向后查找        (?<!pattern)/pattern/负向后查找
13 tr或y函数:以一种一对一的对应,将搜索字符串中的字符转换成替换字符串中的字符。返回其替换的字符数。d选项删除搜索字符串,c选项补充搜索字符串,s选项称为挤压选项。
14 统一字符编码Unicode:是解决这个问题的一种方式,通过创建新的字符集,称为utf8或uft16,其中的字母不限制为一字节。(先用use8包含)(如/p的p大写,则意义相反)
/p{IsASCII}ASCII字符               /p{Cntr}控制字符
/p{IsDigit}     /p{IsGraph}字母数字或标点字符          /p{IsLower}
/p{IsPrint}字母数字或标点字符或空格   /p{IsPunct}标点       /p{IsSpace}白空
/p{IsUpper}大写字母   /p{IsWord}字母数字字符或下划线   /p{IsXDigit}十六进制

 

   发表于: 2007-05-08,修改于: 2007-05-08 18:34 已浏览1094次,有评论0条 推荐 投诉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值