PHP与正则表达.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文章内容来源方面,有本站旧文重新整理而来,也有翻译英文文献而来(感谢在加拿大的!oEL同学),还有些是个人心得. 个人能力有限,肯定有一些错误,发现的朋友请给予提醒以及时更正. 不至误导新手. 如果文章能给大家一些参考,就很满足了. 也欢迎PHP爱好者投稿,完善本系列,让新手少走一些弯路. PHP与正则表达系列之: PHP 中的正则表达式 正则表达式简介及正则表达式在PHP中的作用 正 则表达式是一种表示规则的途经,在 PHP 中利用这些规则可以让你灵活变通地匹配、检验、替换以及修改 字符串。本文涉及到 PCRE 的基础,以及如何使用 preg_match(),preg_replace(),and preg_split() 函数。 接下来就让我们从实例循序渐进地开始学习如何使用这些函数。 规则匹配 preg_match 利用 preg_match(),我们可以完成字符串的规则匹配。如果找到一个匹配,preg_match() 函数返回 1,否则返回 0。还有一个可选的第三参数可以让你把匹配的部分存在一个数组中。在验证数据时这个功能可以变得非常有用。 $string = football; if (preg_match(/foo/, $string)) { // 匹配正确 } 上面的例子将成功匹配,因为单词 football 里面包含 foo。现在我们来试一个更复杂的,例如验证一个 Email 地址。 $string = first.last@domain.uno.dos; if (preg_match( /^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/, $string)) { // 验证Email地址 } 这个例子将验证出此 Email 地址为正确格式。现在让我们来看看这段正则表达式所代表的各种规则。 PCRE 顾名思义,与在 Perl 中的正则表达式有相同的语法,所以每段正则表达式必须要有一对定界符。我们一般使用 / 为定界符。 开头的 ^ 和结尾的 $ 让PHP从字符串开头检查到结尾。假使没有 $,程序仍会匹配到 Email 的末尾。 [ 和 ] 被用来限制许可输入类型。例如 a-z 允许所有的小写字母,A-Z 允许所有的大写字母,0-9 所有数字,等等,以及更多其他类型。 { 和 } 被用来限制期望的字符数。例如 {2,4} 表示字符串的每一节可以有 2-4 字符长度,像是 . 或 .info。在这里, . 并不算一个字符,因为 {2,4} 之前定义的许可输入类型只有大小写字母,故此段只匹配大小写字母 ( 和 ) 被用来合并小节,并定义字符串中必须存在的字符。(a|b|c) 能够匹配 a 或 b 或 c。 (.) 将匹配所有字符,而 [.] 只匹配 . 本身。 要使用一些符号本身,必须在前增加一个 。这些字符有:( ) [ ] . * ? + ^ | $ 规则替换 preg_replace preg_replace 允许你替换字符串中匹配到你定义的正则表达式。一个简单的注释移除功能: preg_replace([(/*)+.+(*/)], , $val); 这段代码可以移除在 PHP 和 CSS 中使用 /* 注释 */ 格式的多多行注释。其中的三个参数分别为正则表达式,要替换成的字符串和要替换的目标字符串(这里要做移除功能,所以是个空白字符串 - )。如果你想匹配次级规则,可以使用 $0 代表全部匹配,$1、$2 等,以此类推代表分别的次级规则。 规则分割preg_split preg_split 可以将整段字符串按匹配到的正则表达式分割成 1、2或更多字符的多段。比如获取标签,无论是用空格还是逗号分隔的: $tags = preg_split(/[,]/, my,tags,unevenly,spaced); print_r($tags); 正则表达式是一个很实用的技巧,让你可以专注于所期望得到的内容。 但有时候一段正则表达式并不能让你如愿以偿得到预期的结果是件很烦人的事,所以我将在本系列的第二篇文章附上一些简单的语法指南希望能够帮到大家。 如果你想跳过痛苦的练习过程而直接获得一些成功的喜悦感,请期待PHP5研究室推出的 PHP与正则表达系列之二: 八个实用PHP正则表达式。 附:PCRE 语法指南 / 定界符 ^ 字符串头 $ 字符串尾 [a-z] 所有小写字母 [A-Z] 所有大写字母 [0-9] 所有数字 ? 零或一个紧接前的字符 * 零或多个紧接前的字符 + 一或多个紧接前的字符 {4} 4个紧接前的字符 {4

文档评论(0)

80092355km + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档