Home  >  Article  >  php教程  >  正则表达式使用详解(二)

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

WBOY
WBOYOriginal
2016-06-21 09:02:14847browse

 

使用实例
  
  
  在对正则表达式有了较为全面的了解之后,我们就来看一下如何在PerlPHP,以及JavaScript中使用正则表达式。
  
  
  通常,Perl中正则表达式的使用格式如下:
  
  
  operator / regular-expression / string-to-replace / modifiers
  
  
  运算符一项可以是ms,分别代表匹配运算和替换运算。
  
  
  其中,正则表达式一项是将要进行匹配或替换操作的模式,可以由任意字符,元字符,或定位符等组成。替换字符串一项是使用s运算符时,对查找到的模式匹配对象进行替换的字符串。最后的参数项用来控制不同的匹配或替换方式。例如:
  
  
  s/geed/good/
  
  
  将会在目标对象中查找第一个出现的geed字串,并将其替换为good。如果我们希望在目标对象的全局范围内执行多次查找替换操作的话,可以使用参数 “g”,即s/love/lust/g
  
  
  此外,如果我们不需要限制匹配的大小写形式的话,可以使用参数i。例如,
  
  
  m/JewEL/i
  
  
  上述正则表达式将会与目标对象中的jewelJewel,或JEWEL相匹配。
  
  
  在Perl中,使用专门的运算符“=~”指定正则表达式的匹配对象。例如:
  
  
  $flag =~ s/abc/ABC/
  
  
  上述正则表达式将会把变量$flag中的字串abc替换为ABC
  
  
  下面,我们就在Perl程序中加入正则表达式,验证用户邮件地址格式的有效性。代码如下:
  
  
  #!/usr/bin/perl
  
  # get input
  
  print “What's your email address?\n”;
  
  $email =
  
  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!”;}
  
   ?>
  
  最后,我们在来看一下JavaScriptJavaScript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回truefalse
  
  
  我们可以使用JavaScript编写以下脚本,验证用户输入的邮件地址的有效性。
  
  
  
  
  
  
        
  
   
  
   
  
  
  
  

onSubmit
="return verifyAddress(this);">
     
  
   
  
   
  
  
  
 
  
  
  



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn