`
wangyalei
  • 浏览: 53692 次
  • 性别: 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时整理的学习笔记

    综上所述,这份学习笔记是一个全面的PHP入门教程,涵盖了从基本语法、数据类型到高级特性的众多主题,对于想要学习PHP的新手来说是一份极其有用的资源。通过逐个学习和实践这些文件中的内容,读者可以逐步建立起自己...

    (正则表达式)学习笔记

    在这个“正则表达式”学习笔记中,我们将深入探讨这一强大的工具。 1. **基础概念** - **字符集**:包括普通字符(如 `a`、`b`)和特殊字符(如 `.`、`\d`),它们组合起来形成匹配模式。 - **量词**:如 `*` ...

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

    在PHP中,字符串处理和正则表达式是两大重要的主题,它们在Web开发中扮演着不可或缺的角色。字符串处理包括对字符串的各种操作,...因此,在学习PHP的过程中,应当重视字符串处理和正则表达式的使用,并不断加深理解。

    php正则表达式学习笔记

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

    php 正则表达式学习笔记

    本学习笔记将涵盖PHP中正则表达式的几个重要知识点,包括基本匹配、捕获组的命名、模式修饰符的使用以及Unicode处理等。 首先,基本的正则表达式匹配可以通过`preg_replace`函数实现。在正则表达式中使用`\G`断言来...

    php学习笔记.docx

    PHP-计算表达式: * PHP 中可以进行计算,如 echo 12*3 可以计算出结果 36。 PHP-字符串: * 字符串是用双引号括起来的一个词或一个句字。 * 字符串可以用单引号括起来。 * 字符串可以用连接符连接起来。 PHP ...

    PHP学习笔记总结.doc

    【PHP学习笔记总结】 PHP(超文本预处理器)是一种广泛使用的开源脚本语言,特别适合于Web开发。它能够嵌入HTML中,让开发者在服务器端处理数据,生成动态网页内容。与JavaScript不同,PHP代码在服务器上执行,然后...

    PHP的学习笔记.pdf

    以下是从提供的文件内容中梳理出的PHP学习笔记知识点: 1. PHP常用输出语句: - echo:用于输出字符串,可以输出多个值,但不具备返回值。 - print_r:打印变量的详细信息,也可以输出多个值,并能接受第二个参数...

    PHP学习笔记

    【PHP学习笔记】深入解析 PHP,全称“PHP: Hypertext Preprocessor”,是一种广泛使用的开源脚本语言,尤其适用于Web开发。与客户端JavaScript不同,PHP代码在服务器端执行,这意味着它可以处理表单数据、生成动态...

    php的学习笔记-php的学习笔记

    从给定的文件信息中,我们可以提炼出一系列与PHP学习相关的知识点,涵盖了基本的调试技巧、错误处理策略、变量管理、以及PHP的工作流程等。以下是对这些知识点的详细阐述: ### PHP调试技巧 #### 输出调试 1. **...

    Parch 学习笔记系列(十七本)

    【Parch 学习笔记系列】是一套全面涵盖多种IT技术的综合学习资源,包括了JavaScript、Java、PHP、Linux等多个重要领域的知识。这个压缩包包含十七本详细的学习笔记,旨在帮助初学者和有一定经验的开发者深入理解这些...

    php 手册[学习笔记]

    - **`var_dump`**:显示一个或多个表达式的结构;对于调试非常有用,因为它会显示数据类型和长度等详细信息。 - **`var_export`**:类似 `var_dump`,但输出的是可以被 PHP 解析的字符串。 - 示例: ```php $arr =...

    比较实用的正则表达式学习笔记

    正则表达式的学习笔记记载了作者在学习过程中的实用技巧和一些重要的概念。这些笔记有助于帮助他人快速上手正则表达式的使用,并在实践中进行有效的信息处理和数据挖掘。在使用正则表达式时,需要注意对特殊字符的...

Global site tag (gtag.js) - Google Analytics