当前位置: 首页 > 图文教程 > 网络编程 > PHP > 正则表达式使用详解(二)

PHP
PHP 开发环境的选择、建立及使用(5)
PHP 开发环境的选择、建立及使用(6)
PHP 开发环境的选择、建立及使用(7)
PHP 开发环境的选择、建立及使用(8)
PHP 开发环境的选择、建立及使用(9)
Win2003下APACHE PHP5 MYSQL4 PHPMYADMIN 的简易安装配置
PHP新手上路(八) 文件上传
PHP新手上路(九) 投票系统
PHP新手上路(十) 简易banner动态更替
PHP新手上路(十一) 数据库链接
PHP新手上路(十二)使用PHP来操作Oracle数据库
PHP新手上路(十三)PHP资源
PHP新手上路(十四) 其他杂项
session全教程(一)
session全教程(二)
session全教程(三)
PHP编码规范
第十五节--Zend引擎的发展 -- Classes and Objects in PHP5 [15]
第十四节--命名空间 -- Classes and Objects in PHP5 [14]
第十二节--类的自动加载 -- Classes and Objects in PHP5 [12]

PHP 中的 正则表达式使用详解(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 119 ::
收藏到网摘: n/a

       正则表达式使用详解(二)
  
  使用实例
  
    在对正则表达式有了较为全面的了解之后,我们就来看一下如何在Perl,PHP,以及JavaScript中使用正则表达式。
  
    通常,Perl中正则表达式的使用格式如下:
  
    operator / regular-expression / string-to-replace / modifiers
  
    运算符一项可以是m或s,分别代表匹配运算和替换运算。
  
    其中,正则表达式一项是将要进行匹配或替换操作的模式,可以由任意字符,元字符,或定位符等组成。替换字符串一项是使用s运算符时,对查找到的模式匹配对象进行替换的字符串。最后的参数项用来控制不同的匹配或替换方式。例如:
  
    s/geed/good/
  
    将会在目标对象中查找第一个出现的geed字串,并将其替换为good。如果我们希望在目标对象的全局范围内执行多次查找—替换操作的话,可以使用参数 “g”,即s/love/lust/g。
  
    此外,如果我们不需要限制匹配的大小写形式的话,可以使用参数 “i ”。例如,
  
    m/JewEL/i
  
    上述正则表达式将会与目标对象中的jewel,Jewel,或JEWEL相匹配。
  
    在Perl中,使用专门的运算符“=~”指定正则表达式的匹配对象。例如:
  
    $flag =~ s/abc/ABC/
  
    上述正则表达式将会把变量$flag中的字串abc替换为ABC。
  
    下面,我们就在Perl程序中加入正则表达式,验证用户邮件地址格式的有效性。代码如下:
  
    #!/usr/bin/perl
    # get input
    print “What's your email address?\n”;
    $email = <STDIN>
    chomp($email);
    # match and display result
    if($email =~ /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/)
    {
    print(“Your email address is correct!\n”);
    }
    else
     {
      print(“Please try again!\n”);
     }
  
  
    如果用户更偏爱PHP的话,可以使用ereg()函数进行模式匹配操作。ereg()函数的使用格式如下:
     ereg(pattern, string)
  
    其中,pattern代表正则表达式的模式,而string则是执行查找替换操作的目标对象。同样是验证邮件地址,使用PHP编写的程序代码如下:
  
    <?php
     if (ereg(“^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+”,$email))
      { echo “Your email address is correct!”;}
     else
      { echo “Please try again!”;}
     ?>
    最后,我们在来看一下JavaScript。JavaScript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。
  
    我们可以使用JavaScript编写以下脚本,验证用户输入的邮件地址的有效性。
  
    <html>
     <head>
      <script language="Javascript1.2">
       <!-- start hiding
       function verifyAddress(obj)
       {
        var email = obj.email.value;
        var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
        flag = pattern.test(email);
        if(flag)
        {
         alert(“Your email address is correct!”);
         return true;
        }
        else
         {
          alert(“Please try again!”);
          return false;
          }
        }
       // stop hiding -->
 &