您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 第08章_正则表达式
第八章正则表达式2北京万博天地网络技术股份有限公司版权所有本章目标了解什么是正则表达式了解正则表达式的功能和作用掌握正则表达式的基本元素掌握PHP中正则表达式的应用3北京万博天地网络技术股份有限公司版权所有本章内容8.2正则表达式的语法8.1.1什么是正则表达式4北京万博天地网络技术股份有限公司版权所有8.1正则表达式概述什么是正则表达式正则表达式的功能5北京万博天地网络技术股份有限公司版权所有8.1.1什么是正则表达式正则表达式(regularexpression,简写regexes)是用来操作和检验字符串数据的一种强大的工具正则表达式是一串特殊的字符,它转换为某种算法,根据这个算法来匹配文本正则表达式的强大不是表现在特定的字符匹配上,而是在字符类型的模式匹配上6北京万博天地网络技术股份有限公司版权所有8.1.2正则表达式的功能在程序语言中引入正则表达式,可以完成以下功能测试字符串的某个模式替换文本根据模式匹配从字符串中提取一个子字符串7北京万博天地网络技术股份有限公司版权所有8.2正则表达式的语法基础元素(POSIX)POSIX风格正则表达式函数Perl样式正则表达式8北京万博天地网络技术股份有限公司版权所有8.2.1基础元素(POSIX)特殊匹配符正则表达式中定义特定的字符可以匹配字符出现的频率或位置可以查找一个字符串中包含一个或多个p的实例字符串,也可以查找以p开头或以p结尾的字符串不同类型匹配符正则表达式还提供了一些字符类用于针对不同类型进行匹配的匹配符转义字符正则表达式中提供了一些特殊字符,而这些特殊字符都是具有一定的含义转义字符使用“\”字符表示“\”后面跟其它字符表示该字符是转义字符。转义字符表示“\”后面的字符或具有特殊含义9北京万博天地网络技术股份有限公司版权所有8.2.1基础元素(POSIX)(续)预定义字符范围正则表达式可以使用一些预定义的字符范围,称为字符类(characterclass)字符类指定整个字符范围贪婪模式和懒惰模式贪婪匹配就是当正则表达式中包含能接受重复的限定符时,在使整个表达式能得到匹配的前提下,匹配尽可能多的字符懒惰匹配是当正则表达式中包括能接受重复的限定符时,在整个表达式能得到匹配的前提下,匹配尽可能少的字符10北京万博天地网络技术股份有限公司版权所有8.2.2POSIX风格正则表达式函数ereg()函数ereg()函数用于区分大小写方式搜索字符串的模式,如果找到则返回所匹配到的字符串的字符数,否则返回falseintereg(stringpattern,stringstring[,arrayregs])eregi()函数eregi()函数用于字符串匹配搜索,但是搜索字符串时不区分大小写interegi(stringpattern,stringstring[,arrayregs])11北京万博天地网络技术股份有限公司版权所有8.2.2POSIX风格正则表达式函数(续)ereg_replace()函数ereg_replace()函数跟ereg()函数功能类似,也是区分大小写模式搜索字符串模式,但是它在查找到字符串的同时可以进行字符串替换stringereg_replace(stringpattern,stringreplacement,stringstring)eregi_replace()函数eregi_replace()函数跟ereg_replace()函数功能类似,只是忽略大小写进行搜索字符串模式stringeregi_replace(stringpattern,stringreplacement,stringstring)12北京万博天地网络技术股份有限公司版权所有8.2.2POSIX风格正则表达式函数(续)split()函数和spliti()函数split()函数和spliti()函数可以将字符串根据一定的规则分割成各个元素,但是split()函数区分大小写而spliti()函数不区分大小写arraysplit(stringpattern,stringstring[,intlimit]);arrayspliti(stringpattern,stringstring[,intlimit]);sql_regcase()函数sql_regcase()函数将字符串逐字符传回大小写字符stringsql_regcase(stringstring);13北京万博天地网络技术股份有限公司版权所有8.2.3Perl样式正则表达式Perl风格的正则表达式与POSIX类似,Perl正则表达式的语法是由POSIX实现派生来的,因此Perl可以使用前面介绍的除预定义字符范围匹配符外的所以匹配符Perl正则表达式不仅要包含字符串模式,同时正则表达式前后需要定界符“/”/pattern/14北京万博天地网络技术股份有限公司版权所有8.2.3Perl样式正则表达式(续)修饰符Perl除了可以使用前面的POSIX风格的一些匹配符外还来提供了一些自己特有的修饰符修饰符说明i完成不区分大小写的搜索g查找全局范围内所有出现(alloccurrences,完成全局搜索)m讲一个字符串视为多行(m表示multiple),默认情况下,^字符匹配字符串中的开始。使用m修饰使^匹配字符串中每行的开始s将一个字符串为一行,忽略其中的所有换行符;它与m修饰正好相反x忽略正则表达式中空白的注释U第一次匹配后停止。许多量词都是贪婪模式匹配,将尽可能的匹配,而不是第一次匹配后停止。利用这个修饰符可以让他进行懒惰模式匹配15北京万博天地网络技术股份有限公司版权所有8.2.3Perl样式正则表达式(续)Perl风格正则表达式函数PHP为Perl兼容的正则表达式提供了搜索、替换等7个函数preg_grep()函数preg_grep()函数搜索数组中的所以元素,返回匹配的所以元素组成的数组arraypreg_grep(stringpattern,arrayinput[,intflags=0]);16北京万博天地网络技术股份有限公司版权所有8.2.3Perl样式正则表达式(续)preg_match()函数preg_match()函数在字符串中进行正则表示式匹配搜索模式intpreg_match(stringpattern,stringsubject[,array&matches[,intflags[,intoffset]]]);preg_match_all()函数函数preg_match_all()在字符串中进行全局匹配intpreg_match_all(stringpattern,stringsubject,array&matches[,intflags[,intoffset]])17北京万博天地网络技术股份有限公司版权所有8.2.3Perl样式正则表达式(续)preg_quote()函数正则表达式中包含一些特殊字符,在使用这些字符时需要在字符前插入一个反斜线。正则表达式特殊字符包括:.\+*?[^]$(){}=!|:-preg_quote()函数用了将字符串中出现的特殊字符前加一个反斜线stringpreg_quote(stringstr[,stringdelimiter=NULL])preg_replace()函数函数preg_replace()是执行正则表达式的搜索和替换,并返回替换后的结果mixedpreg_replace(mixedpattern,mixedreplacement,mixedsubject[,intlimit=-1[,int&count]])18北京万博天地网络技术股份有限公司版权所有8.2.3Perl样式正则表达式(续)preg_replace_callback()函数preg_replace_callback()函数是正则表达式搜索后使用定制函数替换匹配项,进行动态修改字符串mixedpreg_replace_callback(mixedpattern,callbackcallback,mixedsubject[,intlimit=-1[,int&count]])preg_split()函数preg_split()函数用来按照指定样式分割字符串arraypreg_split(stringpattern,stringsubject[,intlimit=-1[,intflags=0]])19北京万博天地网络技术股份有限公司版权所有本章总结正则表达式的功能和作用正则表达式的基本语法和基本元素应用POSIX风格和Perl风格的PHP函数应用
本文标题:第08章_正则表达式
链接地址:https://www.777doc.com/doc-4006506 .html