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

正则表达式使用详解(二)
Posted Time:2003-5-9 18:21:40 Author:飞鹰 Click:1759 Source:www.ASPCool.com

         正则表达式使用详解(二)
  
  使用实例
  
    在对正则表达式有了较为全面的了解之后,我们就来看一下如何在Perl,PHP,以及Javasrcipt中使用正则表达式。
  
    通常,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!”;}
     ?>
    最后,我们在来看一下Javasrcipt。Javasrcipt 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。
  
    我们可以使用Javasrcipt编写以下脚本,验证用户输入的邮件地址的有效性。
  
    <html>
     <head>
      <srcipt language="Javasrcipt1.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 -->
      </srcipt>
     </head>
     <body>
     <form onSubmit="return verifyAddress(this);">
     <input name="email" type="text">
     <input type="submit">
     </form>
    </body>
   </html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值