您的位置:首页 > 其它

正则表达式的基本知识

2013-07-24 15:09 211 查看
一 正则表达式组成部分!! 例: "/\<img\s*src=\".*?\"\/\>/iu" 和 "#\<img\s*src=\".*?\"\/\>#iu"1.定界符 / / 除了字符、数字和反斜线"\" 以外的任何字符都可以为定界符. ”| |“ "{ }"等都可以. 一般我们用"/ /". 2.原子 img \s 注意: 原子是正则最基本的组成单位.每个正则表达式必须至少有一个原子, 只要一个字符可以在正则表达式里单独出现他就是一个原子! 注意: 反斜杠"\"可以把有意义的字符转换成无意义的字符输出.也可以吧无意义的字符转化成有意义的输出 1.原子包括 打印和非打印字符. 2.如果有意义的字符想作为原子使用统统使用转义字符"\"来转意. (如: \*\.\?\<\>\( \) ) 3.在正则表达式中可以直接使用一些代表范围的原子! \d : 表示任意一个十进制的数字! 等于 [0-9] \D :表示任意一个除数字之外的字符! 等于 [^0-9] \s :表示任意一个空白字符! 等于 [\n\r\t\f] \S :表示任何一个非空白字符! 等于 [^\n\r\t\f] \w :表示任何一个字! a-z A-Z 0-9 _ 等于 [a-zA-Z_] \W :表示任何一个非字! (除了 a-z A-Z 0-9 _之外的字符) 等于 [^a-zA-Z_] 4.自己定义原子表用[] . 如:[13579] /[13579]/ 和 /13579/ 两个表达式的区别是:后者表达的是一个整体13579 前者表达的是一个结合1、3、5、7、9 /[1-9p-z]/ 表示范围充1到9p-z [^] 表示取反的意思. /[^abc]/ 除了字符abc意外其它都可以.^必须在方括号里面第一位 3.元字符 * ? 元字符是用来修饰原子的,所以不能单独出现!!如果想输出元字符本身用转义字符"\" * :表示前面的原子可以出现 0次 1次 或多次 + :表示前面的原子可以出现一次或多次 .即至少要有一个原子. ? :表示前面的原子可以出现一次或0次,不能是多次. . :默认情况下表示除换行符外任意一个字符! ^ :如果"^"在正则表达式的第一个字符出现,表示匹配的字符串必须以^字符后面的字符开始. 例子/^abc/匹配以abc开头的字符串! $ :如果"$"在正则表达式的最后个字符出现,表示匹配的字符串必须以$字符前面的字符开始. 例: /abc$/ 匹配的字符必须以abc结尾! 例子: /^abc$/ 这个匹配的仅仅是abc这三个字符! /^abc .*abc$/ 表示匹配一abc开头以abc结尾的字符串. | :表示或的关系! 例:/abc|123/ 或的优先级别最低是最后考虑的,所以正则匹配的字符串要有abc或123,而不是c或1. {} :{5}前面的原子可以出现5次. {m,n} 前面的原子出现的次数大于m次小于n次. {m,}表示前面的原子出现的次数大于m次. (m,n是整数且m<n) \b :表示一个边界! 语言不好表达看个例子吧! 例: 用正则/\bis\b/ 匹配字符串"this is island" 匹配出的结果是"is",因为is的两边都有边界! \B :表示一个非边界! 同样看这个例子 例: 用正则/\bis\B/ 匹配字符串"this is island"匹配的结果是"island" 因为左边有边界右边有"land"字符串. () :重点啊!! 作用举例说明! 作用1: ()里面的多个原子做为一个大原子使用. 例:/(abc)+/ 和 /abc+/ 区别是前者可以匹配出含有多个"abc"的字符串!()把abc当作了一个大原子. 后者可以匹配出类似于"abccc"这样的字符串,ab后面可以有一个或多个c. 作用2:改变匹配的优先级! 例: /do(g|c)at/ 和 /dog|cat/ 前者可以匹配出dogat 或 docat 后者匹配的是dog或cat,()改变了| 的优先级! 作用3:作为子模式使用.如果正则表达式有子模式,正则表达式在进行全部匹配后会对每个子模式也进行匹配.全部匹配作为一个大模式放到数组的第一个元素中,每个()是一个子模式安顺序放到数组的其它元素中去. 例: 用 正则 "/(\d{4}\w\d{2}\w\d{2})\s+\d{2}\w\d{2}\w\d{2}\s+[am|pm]/" 匹配字符串"today is 2012-09-23 12:22:11 pm" 中的日期时间. 会匹配出 全模式"2012-09-23 12:22:11 pm" 和 子模式 "2012-09-23" . 了解: "\" 优先级第一 "()"优先级第二 "* + ? {}"优先级第三 "^ $ \b"优先级第四 ....... "|"优先级最后!
4.模式修正符 ( i 这个则匹配是不区分大小写. m 将要被匹配的字符串不当作一行进行匹配! 默认情况将字符串当作一行. s 将要匹配的字符串当作一行! x 忽略正则里面的空格.) 位置:在定界符"/ /"的后面 作用:对整个正则表达式调优用的, /abc/ 和 /abc/i 前者只能匹配abc 后者可以匹配abc ABC Abc 等.. 这个功能挺多的自己查找吧....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: