传智播客php培训(正则表达式).ppt
《传智播客php培训(正则表达式).ppt》由会员分享,可在线阅读,更多相关《传智播客php培训(正则表达式).ppt(43页珍藏版)》请在三一办公上搜索。
1、php正则表达式,讲师:韩顺平,主讲 韩顺平,php进阶-内容介绍,(一)基础知识(二)perl兼容正则表达式(三)posix扩展正则表达式,主讲 韩顺平,php进阶-期望目标,1.熟练的使用正则表达式,主讲 韩顺平,为什么要学习正则表达式提出问题,给你一个字符串(或一篇文章),请你找出所有四个数字连在一起的子串?,给你一个字符串(或一篇文章),请你找出所有四个数字连在一起的子串,并且这四个数字要满足:第一位与第四位相同,第二位与第三位相同,比如 1221,5775,.,提出几个问题?,主讲 韩顺平,为什么要学习正则表达式提出问题,提出几个问题?,给你一个字符串,请在服务器端验证该字符串是否是
2、一个电子邮件?给你一个字符串,请在服务器端验证该字符串是否是一个身份证?给你一个字符串,请在服务器端验证该字符串是否是一个电话号码?,主讲 韩顺平,为什么要学习正则表达式解决之道,为了解决上述问题(当然类似问题还有很多),php的设计者给我们提供了正则表达式技术,专门用于处理类似问题。,解决之道-正则表达式,主讲 韩顺平,初识正则表达式基本概念,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。,正则表达式,javascr
3、ipt,java,php,.,我这里要特别强调,正则表达式不是php的专利产品,实际上很多程序设计语言都支持正则表达式进行字符串操作!如右图所示。,基本概念,主讲 韩顺平,初识正则表达式基本概念,php中有两套正则表达式函数库,两者功能相似,就是执行效率上有所区别:一套是由PCRE(Perl Compatible Regular Expression)库提供的,使用pcre_ 为前缀的函数。(2)一套是由POSIX(Portable Operation System Interface)扩展提供的,使用ereg_ 为前缀的函数(3)两套函数库的功能相似,执行效率稍有不同。一般而言,实现相同的功
4、能,使用PCRE库的效率略占优势,基本概念,可以查看文档来具体说明一下。,主讲 韩顺平,初识正则表达式基本概念,一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用,不过,经过一点点练习之后,就觉得这些复杂的表达式其实写起来还是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作缩短在几分钟(甚至几秒钟)内完成。,基本概念,主讲 韩顺平,一个正则表达式实例,为让大家对正则表达式有一个直观的概念,我先给大家举一个简单的实例,学习技术思路:先入门-精通,给你一个字符串(或一篇文章),请你找出所有四个数字连在一起的子串?,
5、int preg_match_all(string$pattern,string$subject,array&$matches),一个简单实例,参看文档,看看函数的细节,案例 reg01.php,主讲 韩顺平,一个正则表达式实例,上机小练习,针对前面的案例,请大家思考1.如何检索五个连续的数字2.请你找出所有四个数字连在一起的子串,并且这四个数字要满足第一位与第四位相同第二位与第三位相同,比如 1221,5775,.3.指定查找某个字串,比如 韩顺平,如果则提示之,案例 exercise01.php,主讲 韩顺平,正则表达式的作用,php中正则表达式的主要作用包括三个方面:匹配(检索),从给定
6、字串中匹配到符合条件的子串用新的文本替换匹配的文本将给定的字串拆分成符合条件的子串,主讲 韩顺平,pcre 函数,pcre函数preg_filter 执行一个正则表达式搜索和替换preg_grep 返回匹配模式的数组条目 preg_last_error 返回最后一个PCRE正则执行产生的错误代码 preg_match_all 执行一个全局正则表达式匹配 preg_match 执行一个正则表达式匹配 preg_quote 转义正则表达式字符 preg_replace_callback 执行一个正则表达式搜索并且使用一个 回调进行替换preg_replace 执行一个正则表达式的搜索和替换 pre
7、g_split 通过一个正则表达式分隔字符串,参看pcre 函数文档,各个函数的详细用法在后面分别举例说明,主讲 韩顺平,POSIX Regex 函数,ereg_replace 正则表达式替换 ereg 正则表达式匹配 eregi_replace 不区分大小写的正则表达式替换 eregi 不区分大小写的正则表达式匹配 split 用正则表达式将字符串分割到数组中 spliti 用正则表达式不区分大小写将字符串分割到数组中 sql_regcase 产生用于不区分大小的匹配的正则表达式,posix 和 pcre 函数对照表,在php 5.3.0,POSIX 正则表达式扩展被废弃,在使用posix正
8、则表达式函数时总会得到E_DEPRECATED notice 因此,我们重点讲解pcre 正则表达式技术,主讲 韩顺平,正则表达式的语法规则,正则表达式主要包含三个部分:原子(普通字符,比如英文字符、数字、_等)元字符(有特殊功能的字符)模式修正字符,一个正则表达式至少包含一个原子,主讲 韩顺平,正则表达式的语法-子模式、捕获、反向引用,如果你认为正则表达式只能检索固定的字符串或是连续的几个数字,那您就太小看正则表达式了,请看下面一个问题:,给你一个字符串(或一篇文章),请你找出所有四个数字连在一起的子串,并且这四个数字要满足第一位与第四位相同第二位与第三位相同,比如 1221,5775,.,
9、请你在服务器端验证字符串是否是一个电子邮件?请你在服务器端验证字符串是否是一个身份证?请你在服务器端验证字符串是否是一个电话号码?,子模式、捕获、反向引用,主讲 韩顺平,正则表达式的语法-子模式、捕获、反向引用,子模式、捕获、反向引用,要解决前面的问题,我们需要了解正则表达式的几个概念:子模式我们可以用圆括号组成一个比较复杂的匹配模式,那么一个圆括号的部分我们可以看作是一个子模式。捕获多个子模式所匹配到的内容按顺序出现在内存的缓冲区中,这个我们称为捕获反向引用圆括号的内容被捕获后,可以在这个括号后被使用,从而写出一个比较实用的匹配模式,这个我们称为反向引用,主讲 韩顺平,正则表达式的语法-子模
10、式、捕获、反向引用,看几个小案例 要匹配两个连续的数字:/(d)1/要匹配五个连续的数字:/(d)14/要匹配个位与千位相同,十位与百位相同的数 5225,1551,可以这样写:/(d)(d)21/,案例 reg.php,请思考下面的问题:请在字符串中检索商品编号,形式如:12321-333999111 这样的号码,要求满足前面是一个五位数,然后一个-号,然后是一个九位数,连续的每三位要相同,子表达式、捕获、反向引用,主讲 韩顺平,正则表达式的语法-原子(Atom),原子是组成正则表达式的基本单位,在分析正则表达式时,应作为一个整体。原子字符是由所有末显式指定为元字符的打印和非打印字符组成。这
11、包括所有的英文字母、数字、标点符号以及其他一些符号。原子也包括以下内容。单个字符、数字,如az,AZ,09.模式单元,如(ABC).可以理解为由多个原子组成的大的原子。原子表,如ABC.普通转义字符。转义元字符。,主讲 韩顺平,正则表达式的语法-原子(Atom),原子说明-d匹配一个数字;等价于0-9D匹配除数字以外任何一个字符;等价于0-9w匹配一个英文字母、数字或下划线;等价于0-9a-zA-Z_W匹配除英文字母、数字和下划线以外任何一个字符;等价于0-9a-zA-Z_s匹配一个空白字符;等价于fnrtvS匹配除空白字符以外任何一个字符;等价于fnrtvf匹配一个换页符等价于 x0c 或
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传智播客 php 培训 正则 表达式

链接地址:https://www.31ppt.com/p-5920901.html