多数大学生出来选择的工作和专业无关
首页 > 专业知识

浅谈PHP正则表达式的一点理解

时间:2018-03-09 17:51:19 [来源]:郑州PHP培训学校

   浅谈PHP正则表达式的一点理解

  PHP正则表达式的学习是我们掌握Web开发的一个重要方面,那么在学习PHP正则表达式之前要明白什么概念呢?那么这里就向你介绍一点PHP正则表达式的相关内容。
  PHP正则表达式的使用在实际开发中带给我们全新的感觉,那么我们如何掌握这样一个强有力的工具呢?下面我们来看看对于PHP正则表达式学习的前期知识理解,希望对你有所帮助。
  PHP被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就会出现问题,比如说某人的生日是"2月30日"!那应该怎么样来检验暑假是否正确呢? PHP正则表达式的支持,让我们可以十分方便的进行数据匹配。
  PHP正则表达式相关的一些概念:
  简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。
  在某个Linux网站上面有这样的话:"如果你问一下Linux爱好者最喜欢什么,他可能会回答正则表达式;如果你问他最害怕什么,除了繁琐的安装配置外他肯定会说正则表达式。"正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符串来替代符合条件的字符串等强大的功能,不学实在太可惜了……PHP正则表达式的基本语法:
  一个正则表达式,分为三个部分:分隔符,表达式和修饰符。
  分隔符可以是除了特殊字符以外的任何字符(比如"/ !"等等),常用的分隔符是"/"。表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如"[a-z0-9_-]+@[a-z0-9_-.]+"可以匹配一个简单的电子邮件字符串。修饰符是用来开启或者关闭某种功能/模式。下面就是一个完整的正则表达式的例子:
  /hello.+?hello/is
  上面的正则表达式"/"就是分隔符,两个"/"之间的就是表达式,第二个"/"后面的字符串"is"就是修饰符。
  在表达式中如果含有分隔符,那么就需要使用转义符号"\",比如"/hello.+?\/hello/is"。转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要"\"来转义,比如"\d"代表全体数字。
  PHP正则表达式的一点理解就向你介绍到这里,希望对你了解和掌握PHP正则表达式有所帮助。
 
  解析PHP正则表达式元字符
  对于PHP正则表达式元字符的掌握是我们掌握PHP正则表达式开发的首要利器,那么具体的PHP正则表达式元字符有什么呢?具体的含义是什么呢?那么本文就向你介绍。
  PHP正则表达式元字符都有什么呢?我们在使用PHP正则表达式元字符的时候需要注意什么呢?那么这里就向你详细介绍下PHP正则表达式元字符的种类以及使用的方法等等。
  PHP正则表达式元字符的种类:
  ◆大括号
  ◆加号
  ◆星号
  ◆问号
  PHP正则表达式元字符具体的使用:
  PHP正则表达式元字符在PHP正则表达式中一类有特殊意义的字符,用来描述其前导字符(即元字符前面的字符)在被匹配的对象中出现的方式。元字符本身是一个个单一的字符,但是不同或者相同的元字符组合起来可以构成大的元字符。
  ◆大括号:大括号用来精确指定匹配元字符出现的次数例如"/pre{1,5}/"表示匹配的对象可以是"pre"、"pree"、"preeeee"这样在"pr"后面出现1个到5个"e"的字符串。或者"/pre{,5}/"代表pre出现0此到5次之间。
  ◆加号:"+"字符用来匹配元字符前的字符出现一次或者多次例如"/ac+/"表示被匹配的对象可以是"act"、"account"、"acccc"等在"a"后面出现一个或者多个"c"的字符串。"+"相当于"{1,}"。
  ◆星号:"*"字符用来匹配元字符前的字符出现零次或者多次例如"/ac*/"表示被匹配的对象可以是"app"、"acp"、"accp"等在"a"后面出现零个或者多个"c"的字符串。"*"相当于"{0,}"。
  ◆问号:"?"字符用来匹配元字符前的字符出现零次或者1次例如"/ac?/"表示匹配的对象可以是"a"、"acp"、"acwp"这样在"a"后面出现零个或者1个"c"的字符串。"?"在正则表达式中还有一个非常重要的作用,即"贪婪模式"。
  PHP正则表达式元字符的简单介绍就向你讲解到这里,希望对你了解和掌握PHP正则表达式元字符有所帮助。
 
  浅析PHP正则表达式函数库
  对于PHP正则表达式函数的一些具体的操作是什么呢?那么这里向你介绍PHP正则表达式函数的使用过程中需要注意的事项,希望对你学习PHP正则表达式函数有所帮助。
  浅析PHP正则表达式函数库是什么呢?这里向你介绍了PHP正则表达式函数库(POSIX 扩展)greedy匹配,我们要注意,在条件子模式以及其它许多 POSIX 扩展正则表达式语法中那些所不被不支持的特性。
  PHP正则表达式函数库学习中的警告:
  本类正则表达式并不能安全用于二进制模式。PCRE 函数库则可以。正则表达式在 PHP 中用来做复杂的字符串操作。支持正则表达式的函数为:
  ◆ereg()
  ◆ereg_replace()
  ◆eregi()
  ◆eregi_replace()
  ◆split()
  ◆spliti()
  这些函数都接受一个正则表达式字符串作为其第一个参数。PHP 使用由 POSIX 1003.3 定义的 POSIX 扩展正则表达式。POSIX 正则表达式完整的描述见包含在 PHP 发行包中 regex 目录下的 man 页面。可以通过类似 man /usr/local/src/regex/regex.7 的命令来阅读。
  需求:无需外部库文件就可以加入本扩展模块的支持。
  安装警告:除非知道自己在做什么,否则不要改变 TYPE。
  要激活 regexp 的支持在配置 PHP 时加上 --with-regex[=TYPE]。TYPE 可以是 system,apache 或 php 之一。默认使用 php。
  PHP的Windows 版本已经内置该扩展模块的支持。您无需加载任何附加的扩展库即可使用这些函数。我们来看看具体的相关操作:
  ◆运行时配置:该扩展模块未定义任何设置指令。
  ◆资源类型:该扩展模块未定义任何资源类型。
  ◆预定义常量:该扩展模块未定义任何常量。
  PHP正则表达式函数的实例:
  <?php
  // 如果在 $string 中任何地方找到 "abc" 则返回 &true;ereg ("abc", $string);
  // 如果 $string 以 "abc" 开头则返回 &true;ereg ("^abc", $string);
  // 如果 $string 以 "abc" 结尾则返回 &true;ereg ("abc$", $string);
  // 如果用户浏览器是 Netscape 2,3 或 MSIE 3 则返回 &true;eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);// 将三个空格分隔的单词放入 $regs[1],$regs[2] 和 $regs[3] 中ereg ("([[:alnum:]]+) ([[:alnum:]]+)
  ([[:alnum:]]+)", $string,$regs);
  // 将 <br /> 标记放到 $string 开头
  $string = ereg_replace ("^", "<br />", $string);// 将 <br /> 标记放到 $string 结尾
  $string = ereg_replace ("$", "<br />", $string);// 删除 $string 中的所有换行符
  $string = ereg_replace ("\n", "", $string);?>
  PHP正则表达式函数相关的介绍就向你介绍到这里,希望对你了解和学习PHP正则表达式函数有所帮助。
 

上一篇:PHP正则表达式函数学习小结

下一篇:挖掘PHP上传文件类型原理实现