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

2016-01-29 13:07 3 1 收藏

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

【 tulaoshi.com - PHP 】

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

  通常,Perl中正则表达式的使用格式如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/php/)

  operator / regular-expression / string-to-replace / modifiers

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

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

  s/geed/good/

  将会在目标对象中查找第一个出现的geed字串,并将其替换为good。如果我们希望在目标对象的全局范围内执行多次查找替换操作的话,可以使用参数 g,即s/love/lust/g。

  此外,如果我们不需要限制匹配的大小写形式的话,可以使用参数 i 。例如,

  m/JewEL/i

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/php/)

  上述正则表达式将会与目标对象中的jewel,Jewel,或JEWEL相匹配。

  在Perl中,使用专门的运算符=~指定正则表达式的匹配对象。例如:

  $flag =~ s/abc/ABC/

  上述正则表达式将会把变量$flag中的字串abc替换为ABC。

  下面,我们就在Perl程序中加入正则表达式,验证用户邮件地址格式的有效性。代码如下:

  #!/usr/bin/perl
  # get input
  print Whats your email address?n;
  $email = $#@60;STDIN$#@62;;
  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编写的程序代码如下:

  $#@60;?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!;}
   ?$#@62;
  最后,我们在来看一下JavaScript/" target="_blank"JavaScript。JavaScript/" target="_blank"JavaScript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。

  我们可以使用JavaScript/" target="_blank"JavaScript编写以下脚本,验证用户输入的邮件地址的有效性。

  $#@60;html$#@62;
   $#@60;head$#@62;
    $#@60;script language="Javascript1.2"$#@62;
     $#@60;!-- 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 --$#@62;
    $#@60;/script$#@62;
   $#@60;/head$#@62;
   $#@60;body$#@62;
   $#@60;form onSubmit="return verifyAddress(this);"$#@62;
   $#@60;input name="email" type="text"$#@62;
   $#@60;input type="submit"$#@62;
   $#@60;/form$#@62;
  $#@60;/body$#@62;
 $#@60;/html$#@62;


来源:https://www.tulaoshi.com/n/20160129/1489008.html

延伸阅读
标签: Web开发
签于网上太多的介绍都是一篇凶悍的短文,边看边理解可以,帮助记忆不行。又受五笔字型字根表口诀“白手看头三二斤...”的启发,  试作“正则表达式助记口诀”又名“正则打油诗”,版本0.1,绝对原创,仿冒必究,:)  注:本文仅为学习正则时为了便于记忆而作,不能代替系统而全面的学习过程,错漏之处,敬请指正!  正则其实...
教你使用正则表达式 作者:赖锋 下载源代码 很久没有VCKbase发表文章了,这次发表一些比较基础的文章吧!看过"保证你现在和未来不失业的十种关键技术"这篇文章了吧,这次我就拿出一个不会让你失业的编程技术讲讲吧,老虾们千万不要拿鸡蛋砸我,我只是写给初学者的! 关于正则表达式的教程和用法网上有很多的资源,基本的用法我讲...
标签: Web开发
引言 本文将逐步讨论一些正则表达式的使用话题。本文为本站基础篇之后的扩展,在阅读本文之前,建议先阅读正则表达式参考文档一文。 1. 表达式的递归匹配 有时候,我们需要用正则表达式来分析一个计算式中的括号配对情况。比如,使用表达式 "\( [^)]* \)" 或者 "\( .*? \)" 可以匹配一对小括号。但是如果括号内还嵌有一层...
标签: Web开发
JS的正则表达式 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!p...
标签: Web开发
呵呵,先罗嗦几句,去年用C#做了一个语法高亮的小东西,根据配制文件中的信息把所给代码格式化成HTML,使它能在网页上显示出和编辑器里一样的语法元素高亮的效果以及支持代码折叠。没错,就是和博客园上看到的类似啦。因为我当时使用的是MSN Space,它没有提供这项功能,只好自己写一个咯。 我使用的是C#进行编写,起初使用的是超级繁琐的for...

经验教程

664

收藏

71
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部