荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Second (石开), 信区: Program
标  题: 正则表达式使用详解(二)
发信站: 荔园晨风BBS站 (Tue Jul 17 23:09:23 2001), 转信

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

  在对正则表达式有了较为全面的了解之后,我们就来看一下如何在Perl,PHP,以及
JavaScript中使用正则表达式。

  通常,Perl中正则表达式的使用格式如下:
  operator / regular-expression / string-to-replace / modifiers

  运算符一项可以是m或s,分别代表匹配运算和替换运算。

  其中,正则表达式一项是将要进行匹配或替换操作的模式,可以由任意字符,元字
符,或定位符等组成。替换字符串一项是使用s运算符时,对查找到的模式匹配对象进行
替换的字符串。最后的参数项用来控制不同的匹配或替换方式。例如:
  s/geed/good/

  将会在目标对象中查找第一个出现的geed字串,并将其替换为good。如果我们希望
在目标对象的全局范围内执行多次查找—替换操作的话,可以使用参数 “g”,即s/lo
ve/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_-])+”,$emai
l))
    { 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 -->
    </script>
   </head>
   <body>
   <form onSubmit="return verifyAddress(this);">
   <input name="email" type="text">
   <input type="submit">
   </form>
  </body>

--
                            既然热爱生命
                            那么,
                            一切都在意料之中。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.190]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店