用正则表达式处理文本



用s///进行替换:

      和m//用法一样,返回的是布尔值,替换成功为真,失败为假。
      例:
      $_ = "He'sout bowling with Barney tonight.";
      s/Barney/Fred/;  #把Barney替换成Fred, 也可以捕获位置,s///只会进行一次替换

用/g进行全部替换:

      例:s/^\s+|\s+$//g;  #去除所有开头和结尾空白符

不同的定界符:

      s///可以用其他定界符,不成对的定界符用3个就可以,如果是成对的定界符,就要用两对。
      例:s{fred}{barney}

大小写转换:


 \U所有变大写
 \L 所有变小写
 \E 关闭大小写功能
 \u 只对一个字母大写
 \l 只对一个字母小写

split操作符:

      例:@array =split/\t/,"字符串";
      把字符串以制表符分割,分割后放到数组array中,\t的位置放的是分割的符号,若只要split没有其他参数,会默认以空白符分割$_中字符串。

join操作符:

      和split相反,把所有的都组合起来。
      用法:my $结果 =join "连接符",字符串1,字符串2,字符串3,字符串4...;
      例:my $x =join "-",1,2,3,4;
      结果:1-2-3-4

非贪婪量词:

      +、*、?、{n,m}等都是贪婪量词,在后面加上一个?问号,如:+?,使它尽可能少的从头到位匹配。

一次更新多个文件:

      $^I中是个字符串,该字符中就会变成备份文件的扩展名(要和<>一起使用)。
      流程:①打开要操作的文件,并把名改成$^中字符串为结尾的名字。②然后打开一个新文件,起名为源文件的名。③把输出变为新文件,写到新文件中。
    例:
      chomp(my$date:'date');
      $^I =".bak";
      while(<>){
              s/^Author:.*/Author:Randa L Schwartz/;
              s/^Phone:.*\n///
              s^Pate:.*/Date:$date/;
}

从命令行直接编辑:

      例:perl -p -i.bak -w -e 's/Randall/Randal/g' fred*.dat;
 perl以perl程序处理
 -pwhile(<>){print};
 -i 备份名
 -w开警告
 -e 告诉后面就是可供执行的代码
      等效代码:
              $^I = ".bak";
              while(<>){
                      s/Randall/Randal/g;
                      print;
              }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值