cmsware系统中正则表达式详细介绍

上传人:xiao****1972 文档编号:84136794 上传时间:2019-03-02 格式:DOCX 页数:11 大小:81.81KB
返回 下载 相关 举报
cmsware系统中正则表达式详细介绍_第1页
第1页 / 共11页
cmsware系统中正则表达式详细介绍_第2页
第2页 / 共11页
cmsware系统中正则表达式详细介绍_第3页
第3页 / 共11页
cmsware系统中正则表达式详细介绍_第4页
第4页 / 共11页
cmsware系统中正则表达式详细介绍_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《cmsware系统中正则表达式详细介绍》由会员分享,可在线阅读,更多相关《cmsware系统中正则表达式详细介绍(11页珍藏版)》请在金锄头文库上搜索。

1、本电子书由站长百科()教程组制作CMSware系统中正则表达式详细介绍 出处:站长百科 原文地址:http:/ 本电子书整理自站长百科CMSware正则表达式简介词条,查看内容请访问网站。前言php被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就会出现问题,比如说某人的生日是2月30日!那应该怎么样来检验暑假是否正确呢? 在php中加入了正则表达式的支持,让我们可以十分方便的进行数据匹配。 什么是正则表达式简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕

2、迹,例如:perl或php脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。 在某个Linux网站上面有这样的话:如果你问一下Linux爱好者最喜欢什么,他可能会回答正则表达式;如果你问他最害怕什么,除了繁琐的安装配置外他肯定会说正则表达式。 正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的php初学者都会跳过这里,继续下面的学习,但是php中的正则表达式有着可 以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符串来替代符合条件的字符串等强大的功能,不学实

3、在太可惜了 正则表达式的基本语法一个正则表达式,分为三个部分:分隔符,表达式和修饰符。 分隔符可以是除了特殊字符以外的任何字符(比如/!等等),常用的分隔符是/。 表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如a-z0-9_-+a- z0-9_-.+可以匹配一个简单的电子邮件字符串。 修饰符是用来开启或者关闭某种功能/模式。 下面就是一个完整的正则表达式的例子: /hello.+?hello/is上面的正则表达式/就是分隔符,两个/之间的就是表达式,第二个/后面的字符串is就是修饰符。 在表达式中如果含有分隔符,那么就需要使用转义符号,比如/hello.+?/hello/i

4、s。转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要来转义,比如d代表全体数字。 正则表达式的特殊字符正则表达式中的特殊字符分为元字符、定位字符等等。 元字符是正则表达式中一类有特殊意义的字符,用来描述其前导字符(即元字符前面的字符)在被匹配的对象中出现的方式。元字符本身是一个个单一的字符,但是不同或者相同的元字符组合起来可以构成大的元字符。 1. 大括号:大括号用来精确指定匹配元字符出现的次数,例如/pre1,5/表示匹配的对象可以是pre、pree、preeeee这样在pr后面出现1个到5个e的字符串。或者/pre,5/代表pre出现0此到5次之间。 2. 加号:

5、+字符用来匹配元字符前的字符出现一次或者多次。例如/ac+/表示被匹配的对象可以是act、account、acccc等在a后面出现一个或者多个c的字符串。+相当于1,。 3. 星号:*字符用来匹配元字符前的字符出现零次或者多次。例如/ac*/表示被匹配的对象可以是app、acp、accp等在a后面出现零个或者多个c的字符串。*相当于0,。 4. 问号:?字符用来匹配元字符前的字符出现零次或者1次。例如/ac?/表示匹配的对象可以是a、acp、acwp这样在a后面出现零个或者1个c的字符串。?在正则表达式中还有一个非常重要的作用,即贪婪模式。 还有两个很重要的特殊字符就是 。他们可以匹配之中出现

6、过的字符,比如/az/可以匹配单个字符a或者z;如果把上面的表达式改成这样/a-z/,就可以匹配任何单个小写字母,比如a、b等等。 如果在中出现了,代表本表达式不匹配内出现的字符,比如/a-z/不匹配任何小写字母!并且正则表达式给出了几种 的默认值: :alpha::匹配任何字母 :alnum::匹配任何字母和数字 :digit::匹配任何数字 :space::匹配空格符 :per::匹配任何大写字母 :lower::匹配任何小写字母 :punct::匹配任何标点符号 :xdigit::匹配任何16进制数字 另外下面这些特殊字符在转义符号转义后代表的含义如下: s:匹配单个的空格符 S:用于匹

7、配除单个空格符之外的所有字符。 d:用于匹配从0到9的数字,相当于/0-9/。 w:用于匹配字母,数字或下划线字符,相当于/a-zA-Z0-9_/。 W:用于匹配所有与w不匹配的字符,相当于/a-zA-Z0-9_/。 D:用于匹配任何非10进制的数字字符。 .:用于匹配除换行符之外的所有字符,如果经过修饰符s的修饰,.可以代表任意字符。 利用上面的特殊字符可以很方便的表达一些比较繁琐的模式匹配。例如/d0000/利用上面的正则表达式可以匹配万以上,十万一下的整数字符串。 定位字符:是正则表达式中又一类非常重要的字符,它的主要作用是用于对字符在匹配对象中的位置进行描述。 1. :表示匹配的模式出

8、现在匹配对象的开头(和在里面不同) 2. $:表示匹配的模式出现在匹配对象的末尾 3. 空格:表示匹配的模式出现在开始和结尾的两个边界之一 4. /he/:可以匹配以he字符开头的字符串,比如hello、height等等; 5. /he$/:可以匹配以he字符结尾的字符串即she等; 6. / he/:空格开头,和的作用一样,匹配以he开头的字符串; 7. /he /:空格结束,和$的作用一样,匹配以he结尾的字符串; 8. /he$/:表示只和字符串he匹配。 括号:正则表达式除了可以用户匹配,还可以用括号()来记录需要的信息,储存起来,给后面的表达式读取。 比如:/(a-zA-Z0-9_-

9、+)(a-zA-Z0-9_-+)(.a-zA-Z0-9_-)$/ 就是记录邮件地址的用户名,和邮件地址的服务器地 址(形式为之类的),在后面如果想要读取记录下来的字符串,只是需要用转义符记录的次序来读取。比如1 就相当于第一个a-zA-Z0-9_-+,2相当于第二个(a-zA- Z0-9_-+),3就是第三个(.a-zA-Z0-9_-)。但是在php中,是一个特殊的字符,需要转义,所以到了php的表达式 中就应该写成1。 其它特殊符号:|:或符号|和php里面的或一样,不过是一个|,而不是php的两个|!意思就是可以是某个字符或者另一个字符串,比如/abcd|dcba/可能匹配abcd或者dc

10、ba。 贪婪模式前面在元字符中提到过?还有一个重要的作用,即贪婪模式,什么是贪婪模式呢? 比如我们要匹配以字母a开头字母b结尾的字符串,但是需要匹配的字符串在a后面含有很多个b,比如a bbbbbbbbbbbbbbbbb,那正则表达式是会匹配第一个b还是最后一个b呢?如果你使用了贪婪模式,那么会匹配到最后一个b,反 之只是匹配到第一个b。 使用贪婪模式的表达式如下: /a.+?b/a.+b/U 不使用贪婪模式的如下: /a.+b/上面使用了一个修饰符U,详见下面的部分。 修饰符在正则表达式里面的修饰符可以改变正则的很多特性,使得正则表达式更加适合你的需要(注意:修饰符对于大小写是敏感的,这意味

11、着e并不等于E)。正则表达式里面的修饰符如下: i :如果在修饰符中加上i,则正则将会取消大小写敏感性,即a和A 是一样的。 m:默认的正则开始和结束$只是对于正则字符串如果在修饰符中加上m,那么开始和结束将会指字符串的每一行:每一行的开头就是,结尾就是$。 s:如果在修饰符中加入s,那么默认的.代表除了换行符以外的任何字符将会变成任意字符,也就是包括换行符! x:如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。 e:本修饰符仅仅对于replacement有用,代表在replacement中作为php代码。 A:如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比

12、如说/a/A匹配abcd。 E:与m相反,如果使用这个修饰符,那么$将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。 U:和问号的作用差不多,用于设置贪婪模式。 pCRE相关的正则表达式函数php的perl兼容正则表达式提供的多个函数,分为模式匹配,替换和匹配数目等等: preg_match : 函数格式:int preg_match(string pattern, string subject, array matches); 这个函数会在string中使用pattern表达式来匹配,如果给定了regs,就会将string记录到regs0中, regs 1代表使用括号()记录

13、下来的第一个字符串,regs2代表记录下来的第二个字符串,以此类推。preg如果在string中找到了匹配 的pattern,就会返回true,否则返回false。 2、preg_replace : 函数格式:mixed preg_replace(mixed pattern, mixed replacement, mixed subject); 这个函数会使用将string中符合表达式pattern的字符串全部替换为表达式replacement。如果replacement中需要包含 pattern的部分字符,则可以使用()来记录,在replacement中只是需要用1来读取。 preg_spl

14、it : 函数格式:array preg_split(string pattern, string subject, int limit); 这个函数和函数split一样,区别仅在与split可以使用简单正则表达式来分割匹配的字符串,而preg_split使用完全的perl兼容正则表达式。第三个参数limit代表允许返回多少个符合条件的值。 preg_grep : 函数格式:array preg_grep(string patern , array input); 这个函数和preg_match功能基本上,不过preg_grep可以将给定的数组input中的所有元素匹配,返回一个新的数组。 下面举一个例子,比如我们要检查Email地址的格式是否正确: ?phpfunction emailIsRight($email) if (preg_match(_.0-9a-z-+(0-9a-z0-9a

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号