- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【值得学习的--很经典】PHP正则表达式
模式修正符(Pattern Modifiers) 模式修正符扩展了正则表达式在字符匹配、替换操作时的某些功能。这些扩展或者说修正增强了正则表达式的处理能力。模式修正符一般标记于整个模式之外,并且可以组合使用,如“/apple/i”、“/cat|dog/uis”等。表列出了一些常用的模式修正符极其功能说明。 模式修正符 说明 i 可同时匹配大小写字母 M 将字符串视为多行 S 将字符串视为单行,换行符做为普通字符看待 x 模式中的空白忽略不计 S 当一个模式将被使用若干次时, 为加速匹配起见值得先对其进行分析 U 匹配到最近的字符串 e 将替换的字符串作为表达使用 下面是几个简单的示例,可以说明模式修正符的使用 /apple/i匹配“apple”或“Apple”等,忽略大小写。 /I love you/ix匹配“iloveYou”,忽略大小写以及空白。 /.*/ U将依次匹配字符串“bCool/b musichrFew years ago….. ”中的“b”、“/b”和“hr”。而/.*/却匹配到最后一个可用的字符串,既“bCool/bmusichr” 。 /h .*/Uis将HTML文件视为单行字符串,忽略大小写和换行符。匹配其中中的所有以“h”开头的标签,如“Hl”、“hr size”等。 POSIX风格的正则表达式的字符类: [[:alnum:]] 文字数字字符 [[:alpha:]] 字母字符 [[:lower:]] 小写字母 [[:upper:]] 大写字母 [[:digit:]] 小数 [[:xdigit:]] 十六进制数字 [[:punct:]] 标点符号 [[:blank:]] 制表符和空格 [[:space:]] 空白字符 [[:cntrl:]] 控制符 PHP中的正则表达式函数 在PHP中有两套正则表达式函数库。 一套是由PCRE(Perl Compatible Regular Expression)库提供的。PCRE库使用和perl相同的语法规则实现了正则表达式的模式匹配,其使用以“preg_”为前缀命名的函数。 另一套是由POSIX(Portable Operation System interface)扩展库提供的。POSIX扩展的正则表达式由POSIX 1003.2定义,一般使用以“ereg_”为前缀命名的函数。 两套函数库的功能相似,执行效率稍有不同。一般而言,实现相同的功能,使用PCRE库的效率略占优势。 正则表达式的匹配 1 preg_match() 函数 函数原形: int preg_match(string $pattern, string $content[,array $matches]) preg_match()函数在$content字符串中有哪些信誉好的足球投注网站与$pattern给出的正则表达式相匹配的内容。如果提供了$matches,则将匹配结果放入其中。$matches[0]将包含与整个匹配的文本,$matches[1]将包含第一个捕获的与括号中的模式单元所匹配的内容,以此类推。该函数只作一次匹配,最终返回0或1的匹配结果数。 ?php //需要匹配的字符串。date函数返回当前时间 $content = Current date and time is .date(Y-m-d h:i a)., we are learning PHP together.; //使用通常的方法匹配时间 if (preg_match (/\d{4}-\d{2}-\d{2} \d{2}:\d{2} [ap]m/, $content, $m)) { echo 匹配的时间是: .$m[0]. \n; } //由于时间的模式明显,也可以简单的匹配 if (preg_match (/([\d-]{10}) ([\d:]{5} [ap]m)/, $content, $m)) { echo 当前日期是: .$m[1]. \n; echo 当前时间是: .$m[2]. \n; } ? 2 ereg()和eregi() Ereg()是POSIX扩展中正则表达式的匹配函数.eregi()是ereg()函数的忽略大小的版本.两者与preg_match的功能类似,但函数返回的是一个布尔值,表明匹配成功与否. 需要说明的是,POSIX扩展库函数的第一个参数接受的是正则表达式字符串,即不需要使用分解符. 通常情况下,使用与Perl兼容的正则表达式匹配函数perg_match(),将比使用ereg()或eregi()的速度更快. 如果只是查找一个字符
文档评论(0)