正则表达式(regular expression)是用于描述字符排列模式的一种语法规则

正则表达式(regular expression)是用于描述字符排列模式的一种语法规则

ID:10104565

大小:263.50 KB

页数:37页

时间:2018-05-25

正则表达式(regular expression)是用于描述字符排列模式的一种语法规则_第1页
正则表达式(regular expression)是用于描述字符排列模式的一种语法规则_第2页
正则表达式(regular expression)是用于描述字符排列模式的一种语法规则_第3页
正则表达式(regular expression)是用于描述字符排列模式的一种语法规则_第4页
正则表达式(regular expression)是用于描述字符排列模式的一种语法规则_第5页
资源描述:

《正则表达式(regular expression)是用于描述字符排列模式的一种语法规则》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、正则表达式(RegularExpression)是用于描述字符排列模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。正则表达式早期仅用于Unix系统程序,现在已被绝大多数系统、程序所支持。随着正则表达式移植到交叉平台的程序语言的发展,其功能也日益完善。本章将讲述正则表达式的基本知识以及在PHP中的应用。6.1 正则表达式简介正则表达式的名称源于一系列数学领域的研究成果,其主要的模式匹配思想来自于SNOBOL语言。正则表达式具有一套完整语法体系,提供了一种灵活且直观的字符串处理方法。正则表达式通过构建具有特定规则的模式

2、,与输入信息进行比较,实现字符串的匹配操作。所谓模式是指具有某种共通特征的字符串表达式。例如,对电子邮件地址而言,其共通特性是一般必须包含字符“@”;一个标准的URL地址一般必须以“http://”或“https://”开头;搜索相同类型的文件使用类似于“*.php”格式的字符串——这些都是“模式”。在程序语言中,通常将模式表达式(即正则表达式)包含在两个反斜线“/”之间,如“/apple/”。用户只要把需要匹配的模式内容放入定界符之间即可。作为定界的字符也不仅仅局限于“/”。除了字母、数字和斜线(“”)以外的任何字符都可以作为定界符

3、,像“#”、“/”、“!”等都是可以的。在PHP中有两套正则表达式函数库。一套是由PCRE(PerlCompatibleRegularExpression)库提供的;另一套是由POSIX(PortableOperationSysteminterface)扩展库提供的。前者使用以“preg_”为前缀命名的函数;后者使用以“ereg_”为前缀命名的函数。两者功能相似,只是执行效率略有差异。使用正则表达式的原因之一,是在典型的搜索和替换操作中,只能对确切文字进行匹配,对于动态文本的搜索就有困难了,甚至是不可能的。下面是一个检测数字表示合法性的

4、正则表达式。/^-?d+$

5、^-?0[xX][da-fA-F]+$/该正则表达式可以匹配所有二进制、八进制、十进制、十六进制的正负整数。另一个具体的例子是匹配电子邮件地址格式的正则表达式。/^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+(.[0-9a-zA-Z_-]+){0,3}$/对于初学者而言,这些可能比较费解。在学习完本章内容后,读者就可以真正理解上述表达式的具体含义了。6.2 正则表达式的语法规则正则表达式描述了一种字符串的排列模式,主要用于字符串的模式分割、匹配、查找及替换等操作。正则表达式是主要由原子(普

6、通字符,如英文字符)、元字符(有特殊功用的字符)以及模式修正字符组成。一个正则表达式中至少包含一个原子。他们各自功能和含义有所不同,下面将分别讲述正则表达式的组成元素及其语法规则。6.2.1 原子(Atom)原子是组成正则表达式的基本单位。在分析正则表达式时,应作为一个整体。原子字符是由所有未显式指定为元字符的打印和非打印字符组成。这包括所有的英文字母、数字、标点符号以及其他一些符号。原子包括以下内容。   单个字符、数字,如a~z,A~Z,0~9。   模式单元,如(ABC)。可以理解为由多个原子组成的大的原子。   原子表,如[AB

7、C]。   重新使用的模式单元。   普通转义字符。   转义元字符。表6.1列出了正则表达式所使用的普通转义字符。原   子说   明d匹配一个数字;等价于[0-9]D匹配除数字以外任何一个字符;等价于[^0-9]w匹配一个英文字母、数字或下划线;等价于[0-9a-zA-Z_]W匹配除英文字母、数字和下划线以外任何一个字符;等价于[^0-9a-zA-Z_]s匹配一个空白字符;等价于[frtv]S匹配除空白字符以外任何一个字符;等价于[^frtv]f匹配一个换页符;等价于x0c或cL匹配一个

8、换行符;等价于x0a或cJr匹配一个回车符;等价于x0d或cMt匹配一个制表符;等价于x09或cIv匹配一个垂直制表符;等价于x0b或cKoNN匹配一个八进制数字xNN匹配一个十六进制数字cC匹配一个控制字符6.2.2 元字符(Meta-character)元字符是用于构造规则表达式的具有特殊含义的字符。如果要在正则表达式中包含元字符本身,必须在其前加上“”进行转义。表6.2列出了正则表达式中支持的元字符。表6.2 元字符元 字 符说   明*0次、1次或多次匹配其前的原子+1次或多次匹配其前的原子?0次或

9、1次匹配其前的原子.匹配任何一个字符

10、匹配两个或多个选择^或A匹配字符串串首的原子$或Z匹配字符串串尾的原子b匹配单词的边界B匹配除单词边界以外的部分[]匹配方括号中的任一原子[^]匹配除方括号中的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。