perl正则表达式


0,正则表达式是一组字符串的抽象.
1,匹配操作符 =~、!~:
 =~检验匹配是否成功,!~则相反
2,正则表达式有几种使用方法:
  第一种:最常用的一种,就是确定一个字符串中是否匹配某个模式,/foo/
  第二种:如果你能将一个模式在字符串中定位,你就可以用别的东西来替换它
          s/foo/bar/,表示将 foo 替换成 bar
  【 a {} represents any pair of delimiters you choose, if"/" is the delimiter then the initial m is optional
 //  m{}    Pattern match  
  qr{}       Pattern   
   s{}{}     Substitution   
  tr{}{}   Transliteration 】

3,if($line =~ /http:/)
     =~ 符号(模式绑定操作符)告诉 Perl 在 $line 中寻找匹配正则表达式“http:”, 如果你不是用=~ 操作符,Perl 会对缺省
字符串进行操作。缺省的字符串就是 $_ 这个特殊标量。实际上,$_ 并      不是仅仅是模式匹配的缺省字符串。其
它的一些操作符缺省也使用 $_ 变量。
     因此可以简化成:if(/http:/)
4,+意味着一个或多个相同的字符
   []意味着匹配一组字符中的一个,[^]这里的^表示后边的字符表的反集。
5,锚模式:
    ^ 或 \A : 仅匹配串首
    $ 或 \Z : 仅匹配串尾 
    \b      : 匹配单词边界 
    \B      : 单词内部匹配
6,量词{}:
  
  如果在括弧中只有一个数字,这个数字就指定了最少和最多匹配次数。
  有最少次数和逗号,但省略了最大次数,那么最大次数将被当作无限次数
  \d{7,11} 将匹配最少 7 位数字,但不会多于 11 位数字。
  +,代表 {1,},意思为“最少一次”
  *,表示 {0,},
  ? 表示 {0,1},表示“零或一次”
  注意:
        缺省时量词作用在它前面的单个字符上,因此 /bam{2}/ 将匹配 “bamm”而不是“bambam”。
    如果你要对多于一个字符使用量词,你需要使用圆括弧。
    因此为了匹配“bambam”需要使用 /(bam){2}/。

7,字符范围转义:
     转义字符   描述                       范围 
 \d    任意数字      [0-9] 
 \D    除数字外的任意字符     [^0-9] 
 \w    找寻符合英文字母,数值的字符串   [_0-9a-zA-Z] 
 \W    找寻符合非英文字母,数值字符的字符串 [^_0-9a-zA-Z] 
 \s    空白      [ \r\t\n\f] 
 \S    非空白      [^ \r\t\n\f]
8,匹配任意字符:
    字符"."匹配除换行外的所有字符,通常与*合用。
9,小结:
 特殊字符  描述 
 ()   模式内存 
 + * ? {}  出现次数 
 ^ $ \b \B  锚 
 |   选项,可以连接多个模式
10,模式匹配选项:
    选项 描述 
    g    匹配所有可能的模式 全局修饰符
    i    忽略大小写 
    m    将串视为多行 
    o    只赋值一次 
    s    将串视为单行 
    x    忽略模式中的空白 
 
11,转换操作符,并不使用正则表达式
     tr/searchlist/replacementlist/
    (1)按照默认设置,转换操作符用于对变量$_进行搜索和修改
    (2)tr/A-Z/a-z/; change all  uppercase to lowercase
    (3)如果replacementlist是空的,或者与searchlist相同,那么tr///将计算并返回匹配的字符。目标字符串并不被修改

转载于:https://my.oschina.net/stz/blog/726060

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值