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> 

 

你可能感兴趣的:(JavaScript,PHP,正则表达式,F#,脚本)