2013年正则表达式学习笔记

/**** 正则表达式 用于描述字符排列模式一种语法规则: 作用: 字符串的模式分割、匹配、查找、替换 正规字符,abcd123 特殊字符:() ? ^ $ 原子:(普通字符,如:英文字符) 单个字符,数字,如a-z,A-Z,0-9 (abc) 原子表:[abc] 只匹配其中的一个 [^abc] 匹配除原子表中的字母任何一个 [0-9] [a-zA-Z0-9] 转义字符 \d 匹配一个数字[0-9] \D 匹配除数字以外的任何一个字符[^0-9] \w 匹配一个英文字母,数字或下划线[0-9a-zA-Z] \W 匹配除一个英文字母,数字或下划线外任何一个字符[^0-9a-zA-Z] \s 匹配一个空白字符[\f\n\r\t\v] \S 匹配除空白以外的任何一个字符 \f \n \r \t \v \oNN \XNN \cC 元字符:(有特殊功能用途字符)* + ? . | ^ $ * 0,1次或多次匹配其前的原子 + 1次或多次匹配其前的原子 ? 0次或1次匹配其前的原子 . 匹配除换行符外任何一个字符,相当于[^\n] [^\n\r] | 匹配两个或多个选择 ^ 匹配字符串串首的原子 $ 匹配字符串串尾的原子 \b 匹配单词的边界 \B 匹配单词边界以外的 {m} 表示其前原子恰好出现m次 {m,n}表示其前的原子出现至少出现m次,最多出现n次 {m,}表示其前的原子出现不少于m次 (abc)整体表示一个原子 模式匹配的顺序 左到右 模式单元() 1 重复匹配 ? * + {} 2 边界限制 ^ $ \b \B 3 模式选择 | 4 模式修正字符:(i,U,s,x) 标记在整个模式之外 /abc/iUsx i 不区分大小写匹配 m 将字符串视为多行 s 将字符串视为单行,换行符作为普通字符 x 将模式中的空白忽略 e A D U S 两种函数库, PCRE preg_ POSIX ereg_ ****/ ?> <!--<form> 请输入你要匹配的字符:<input type="text" name="str" size="50" /> <input type="submit" value="提交" /> </form> <hr>--> <?php /***** $str=$_GET["str"]; // $str="aaaaaaaaaaaa // bbbbbbbbbbbbb"; // $mode="/^\d{4}\W\d{2}\W\d{2}$/"; $mode="/^abc/i"; if(preg_match($mode,$str,$content)) { echo "你输入的字符串" .$str." 和模式".$mode." 匹配成功,匹配出来的字符是:".$content[0]; }else { echo "你输入的字符串" .$str." 和模式".$mode." 匹配不成功"; } ****/ //$str="thi6s is8 a demo9"; //echo preg_replace("/\d/","(MM)",$str); //$str="current data and time is ".date("Y-m-d H:i a")."we are learning php"; // echo preg_replace("/(\d{4}\d{2}\d{2} \d{2}\d{2} [ap]m)/i","<font color='#CC0033'>\\1</font>",$str); //$url="你好http://www.baidu.com 搜索引擎,hello哦http://www.google.com我很喜欢http://www.boobooke.com"; //echo $url; //function display(){ // // echo preg_replace("/.*(http:\/\/www\.\w+\.com).*/is","\\1",$url,1); // } /**** $str="Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。"; $arr=preg_split("/[。,、\s]/",$str); print_r($arr); echo "<br>"; foreach($arr as $value) { echo $value."<BR>"; } $content="当前的日期和时间是:".date("Y-m-d H:i a")."一起happy"; if(preg_match("/(\d{4}-\d{2}-\d{2})(\d{2}\d{2})([ap]m)/",$content,$m)) { echo "匹配时间日期" .$m[0]."<Br>"; echo "当前日期" .$m[1]."<Br>"; echo "当前时间" .$m[2]."<Br>"; echo "当前上下午" .$m[3]."<Br>"; }else { echo "匹配不成功<BR>"; echo $content."<Br>"; } $arr=array("aa bb","ccc","abc","yousdfd123","df3df"); print_r(preg_grep("/\d/",$arr)); ****/ /*** $urlstr="你好在:http://www.google.com里面可以搜到http://www.Baidu.com,在百度里面能搜到http://www.bing.org还可以搜到http://www.soso.com"; echo url2html($urlstr); function url2html($urlstr) { preg_match_all("/http:\/\/(www\.)?.+(com|net|org)/iU",$urlstr,$urls); print_r($urls); foreach($urls[0] as $url) { $urlstr=str_replace($url,"<a href=$url>$url</a>",$urlstr); } return $urlstr; } ***/ $str=" [b]meet_web[/b]<br> [i]meet_web[/i]<br> [u]meet_web[/u]<br> [size=10]meet_web[/size]<Br> [color=red]meet_web[/color]<Br> [align=left]meet_web[/align]<Br> [align=center]meet_web[/align]<Br> [align=right]meet_web[/align]<Br> [url=http://www.baidu.com]http://www.baidu.com[/url]<Br> [url]www.baidu.com[/url]<Br> [img]http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif[/img]<Br> [email=gaodong@outlook.com]gaodong@outlook.com[/email]<br> "; echo $str; echo "<BR>"; echo "<BR>"; echo "<BR>"; echo conUbb($str); echo "<BR>"; echo "<BR>"; function conUbb($str) { $patter=array( "/\[b\](.+?)\[\/b\]/is","/\[i\](.+?)\[\/i\]/is","/\[u\](.+?)\[\/u\]/is","/\[size=(\d{1,2})\](.+?)\[\/size\]/is","/\[color=([a-z]{3,}|[0-9a-zA-Z]{6})\](.+?)\[\/color\]/is","/\[align=(left|right|center)\](.+?)\[\/align\]/is","/\[img\](.+?)\[\/img\]/is","/\[url=(.+?)\](.+?)\[\/url\]/is","/\[url\]www\.(.+?)\[\/url\]/is","/\[email=([.a-z]+?)@(.+?)\](.+?)\[\/email\]/" ); $replace=array( "<b>\\1</b>","<i>\\1</i>","<u>\\1</u>","<font size='\\1'>\\2</font>","<font color=\\1>\\2</font>","<div align='\\1'>\\2</div>","<img src='\\1'/>","<a href=\\1>\\2</a>","<a href='http://www.\\1'>www.\\1</a>","<a href='mailto:\\1@\\2'>\\1@\\2</a>" ); $str1=preg_replace($patter,$replace,$str); return $str1; }

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...