`
wangyalei
  • 浏览: 52116 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

php学习笔记(正侧表达式一)

    博客分类:
  • PHP
阅读更多
  1. 字符  说明   
  2. ^   匹配行的开始位置   
  3. $   匹配行的结束位置   
  4. \b  匹配单词的开始或结束位置   
  5. .   匹配除换行符之外的任意数字   
  6. \w  匹配单词字符(字符、数字、下划线和汉字)   
  7. \W  匹配任意的非单词字符   
  8. \s  匹配任意空白字符,如空格、制表符、换行符等   
  9. \S  匹配任意非空白字符   
  10. \d  匹配任意的数字   
  11. \D  匹配任意的非数字字符   
  12. [ aeiou ]   匹配字符集合中的任何字符   
  13. [ ^aeiou ] 匹配除了字符集合中之外的字符   
  14. [ 0~9a~zA~Z_ ]  匹配任何数字、字母和下划线,等同于\w   
  15. [ ^0~9a~zA~Z ]  匹配除了任何数字、字母、下划线之外的任何字符   
  16. 字符或表达式  说明   
  17. {n} 重复n次   
  18. {n,}    重复至少n次   
  19. {n,m}   重复至少n次,最多m次   
  20. *   重复至少0次,等同于{0,1}   
  21. +   重复至少1次,等同于{1,}   
  22. ?   重复0次或1次,等同于{0,1}   
  23. *?  尽可能少的使用重复的第一个匹配   
  24. +?  尽可能少的使用重复但至少使用一次   
  25. ??  使用零次重复(如有可能)或一次重复   
  26. {n}?    等同于{n}   
  27. {n,}?   尽可能少的使用重复但至少使用n次   
  28. {n,m}?  介于n次和m次之间,尽可能少的使用重复  

正则表达式的形式一般如下:

/love/
其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
较为常用的元字符包括: “+”, “*”,以及 “?”。其中,“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
下面,就让我们来看一下正则表达式元字符的具体应用。

    /fo+/

因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。

  /eg*/

因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。

  /Wil?/

因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

  除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,

 /jim{2,6}/

上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配

 /\s+/

上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。

  /\d000/ 

如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。

     /^hell/

因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或 “hellhound”开头的字符串相匹配。

  /ar$/

因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。

 /\bbom/

因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。

 /man\b/

因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。

 因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾 的字符串相匹配。

 /[A-Z]/

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配

    /[a-z]/

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

    /([a-z][A-Z][0-9])+/

上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 “abc”等的字符串匹配,因为“abc”中的最后一个字符为字母而非数字。

   /to|too|2/

上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。

 正则表达式中还有一个较为常用的运算符,即否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串

/[^A-C]/

上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。

 

PHP中可以使用ereg()函数进行模式匹配操作。ereg()函数的使用格式如下:
 

< ?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 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> 
 </html> 

 

分享到:
评论
2 楼 wangyalei 2010-09-01  
phpgood 写道
嗯嗯,挺全面的,但正则是很容易忘记的!我想问的是怎样才能比较牢固的记住它们呢!
呵呵 ,我也没有什么捷径,就是三多,多看---》看别人写的好例子,多想---》想想没有更好的实现方法(都是使用正则实现),都写---》这可就没什么好说的了,关键还是看你自己。
1 楼 phpgood 2010-09-01  
嗯嗯,挺全面的,但正则是很容易忘记的!我想问的是怎样才能比较牢固的记住它们呢!

相关推荐

    PHP 笔记001 - 字符串、正则表达式

    关于学习PHP中字符串与正则表达式的学习笔记、心得,如果需要就下载吧

    (正则表达式)学习笔记

    NULL 博文链接:https://huagenli.iteye.com/blog/506304

    php正则表达式学习笔记

    php正则表达式学习笔记分享: 1.创建正则表达式 $regex = ‘/\d/i’; 与JavaScript中的第一个方式有点像,只是这里的话是个字符串。  2.正则表达式中的特殊字符 特殊字符有: . \ + * ? [ ^ ] $ ( ) { } = ! &lt; ...

    php 正则表达式学习笔记

    最近在学习正则,一些比较有用的东西怕忘记,记下来,比较乱,想一条记录一条:

    PHP学习笔记总结.doc

    一、 PHP概述 二、 PHP基础 三、 面向对象思想 四、 面向对象的PHP 五、 字符串和正则表达式 六、 PHP专题相关 七、 PHP常用API分类汇总 八、 MVC框架及模板 九、 PHP网站部署及安全 十、 PHP网站常见模块(非框架版...

    PHP正则表达式笔记与实例详解

    找来以前的学习笔记,好好看了一下,又巩固了这些知识,工作算是完成了,不过正则要学的东西还是蛮多的,以下是整理的以前的笔记和一些实例! 笔记: 一、正则表达式的介绍:  正则表达式是用于描述字符排列和匹配模式的...

    php学习笔记之基础知识

    php学习至今一年有余,笔记积累挺多的,也挺杂的,写篇文章整理一下吧。 php基础部分 PHP 输出文本的基础指令:echo 和 print。 echo和print的区别 echo是PHP语句, print和print_r是函数,语句没有返回值,函数...

    思库教育PHP零基础培训+进阶课程+PHP项目开发实战 21G PHP零基础学习视频教程.txt

    ├&lt;思库教育一阶段&gt; │ ├1 div实现分块 给颜色;添表格.lxe │ ├1_html+css+js.zip │ ├10表单+input属性值.lxe │ ├2div如何平行显示.lxe │ ├3浮动(float)与清除(cleal)浮动.lxe │ ├4如何使用手册与表单张3...

    reading-notes:读书笔记

    读书笔记 常识 PHP各版本的生命周期 学习资源 资料 awesome-appsec php-must-watch 经验总结 PHP开发者实践 规范写作 PHP The Right Way PHP Best Practices PHP-FIG PSR中文版 PHP Package Checklist Keep a ...

    java8集合源码-fanspaceshow.github.io:学习笔记

    IBM笔记 Ebook 学习经验  Java org.springframework.util.FileCopyUtils  JavaScript  jQuery  Android  Python  PHP  Ruby-Jekyll  CSS  elFinder  Ubuntu  CentOS  VPS  数据库  正则表达式 MiniDao...

    Python 学习笔记

    可以任意转载,但转载时必须...行尾不需要用分号,分号仅用于一行写多条语句的情况。跟BASIC的冒号有些相似。 缩进是有语义的!建议使用TAB缩进 运算符与表达式 运算符 ** 乘幂,Perl也有。 字符串的 * 表示重复,相当

    自己学正则时做的笔记,其实正则也不难哦 php

    RT,正则可以搞定的东西很多哦,大家学习学习吧 一.正则表达式 1.匹配符 1)头匹配符”^”:如^0754,只匹配开头为0754的字符串 2)尾匹配符”$”:如0754$,只匹配结尾为0754的字符串 3)全字匹配:将^和$结合,如^0754$,...

    my_demos:深入前端核心理论,记录个人博客

    7 章:函数表达式《JavaScript 高级程序设计(第四版)》学习笔记:第 3 章:语言基础第 4 章:变量、作用域与内存第 6 章:集合引用类型6.4 Map6.5 WeakMap6.6 Set6.7 WeakSet第 7 章:迭代器和生成器7.2 迭代器...

Global site tag (gtag.js) - Google Analytics