首页 > 其他 > 详细

正则表达式学习笔记

时间:2014-02-25 18:34:33      阅读:305      评论:0      收藏:0      [点我收藏+]

  最近因为工作需要恶补了一点正则方面的知识,特写篇博客记之。

  废话不多说,直接进入正题。

  正则表达式的组成部分

  原子是组成正则表达式的基本单位,在分析正则的时候作为一个整体主要包括如下内容:

->单个数字或者字母:A-Z,a-z,0-9。

->模式单元,如(abc)可以理解为多个原子组成的大原子

->原子表,[abc]:匹配abc中的任意一个

->普通的转义字符,如\d

->特殊的转义元字符

->元字符

  备注:元字符是用于构造表达式的具有特殊含义的字符。

  *   零次或多次匹配前面的(原子)字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}。

  +  一次或多次匹配前面的(原子)字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}

  ? 零次或一次匹配前面的(原子)字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。

  |  匹配两个或多个选择

  ^  匹配字符串串首的(原子)字符或子表达式。

  $  匹配字符串串尾的(原子)字符或子表达式。

  \b  匹配单词的边界

  \B 匹配除单词边界以外的部分

  []  匹配括号中的任意(原子)字符或子表达式。

  [^]  匹配除方括号中的原子以外的任何字符。

  {m} 表示其前原子恰好出现m次。

  {m,n} 表示其前原子至少出现m次,至多出现n次。

  {m,} 表示其原子出现不少于m次。

  ()  整体表示一个原子字符或子表达式。(aa){2}匹配2个aa

  .  匹配除换行符之外的任意字符。等等其余的不一一列出。下面是实例:

  <?php

    preg_match("/../","adc",$a);//匹配两个任意字符

    var_dump($a);//输出的是ad

    preg_match("/(aa|as)/","dsdsds",$a);//匹配aa或者as

    

?>

  普通转义字符:

    \d、\D、\w、\W、\S、\s等等 

  模式修饰符:   

    i     -可同时匹配大小写字母

    M     -将字符串视为多行

    S     -将字符串视为单行,换行符做普通字符看待,使“.”匹配任何字符

    X     -模式中的空白忽略不计   

    U     -匹配到最近的字符串

    e     -将替换的字符串作为表达使用

  单词边界限制:   "this island is a beautiful land"

    \b  对单词的边界进行匹配  例如:/\bis\b/表示is左右两侧都不能有空格.匹配is

    \B  对单词边界以外的部分进行匹配。例如/\Bis/ 匹配  this

 

笔记先到这里,下次有空再记

  

正则表达式学习笔记

原文:http://www.cnblogs.com/fczhou/p/3565808.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!