官方手册正则语法:http://php.net/manual/zh/reference.pcre.pattern.syntax.php

正则表达式在线测试工具:regexpal

正则表达式的匹配先后顺序:
1.模式单元
2.重复匹配 ? * + {}
3.边界限定 ^ $ b B
4.模式选择 |

1.分隔符:当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线、非空白字符。

  例子:

    /foo bar/   #^[^0-9]$# 

  如果分隔符需要在模式内进行匹配,它必须使用反斜线进行转义。如果分隔符经常在 模式内出现, 一个更好的选择就是是用其他分隔符来提高可读性

  可以在结束分隔符后面增加模式修饰符。 下面的例子是一个大小写不敏感的匹配:   #[a-z]#i

2.php中的原子

  什么是原子?原子是正则表达式的最基本组成单位,而且必须至少要包含一个原子。只要一个正则表达式可以单独使用的字符,就是原子。  分为可见原子,不可见原子:

  可见原子:Unicode编码表中键盘输出后肉眼可见的字符

    标点  ;">_等等

    英文字母   a-z,A-Z,0-9

    汉字,日文,阿拉伯文等其他语言

    数理化公式符号:Σ、∩、∈、∥、≌、△  

    其他可见字符

  不可见原子:Unicode编码表中键盘输出后肉眼看不见的字符 

   换行符 \n

   回车符 \r

   制表符 \t

   空格

     其他不可见字符

3.元字符的筛选方式:

  |:匹配两个或者多个分支选择

  []:匹配方括号中的任意一个原子

  [^]:匹配出方括号中的原子之外的任意字符

4.原子的集合

  . :匹配除换行符之外的任意字符

  \d:匹配任意一个十进制的数字,即[0,9]

  \D:匹配任意一个非十进制的数字,即[^0-9]

  \s:匹配一个不可见原子,即[\f\n\r\t\v]

  \S:匹配一个可见原子,即[^\f\n\r\t\v]

  \w:匹配任意一个数字,字母,下划线,即[0-9a-zA-Z]

  \W:匹配任意一个非数字,字母,下划线,即[^0-9a-zA-Z]

5.量词

  {n},表示其前面的原子恰好出现n次

  {n,m},表示其前面的原子最少出现n次,最多出现m次

  {n,},表示其前面的原子最少出现n次

  *,匹配0次,1次或者出现多次,{0,}

  +,匹配1次m,或者多次,{1,}

  ?,匹配0次,或者1次{0,1}

 6.模式单元
  (),  a(bc)*,匹配a后面跟0个或者多个bc

最新文章

  1. D3.js学习(六)
  2. MySQL数据库不能远程访问的解决办法
  3. <button>和<input type="button"> 的区别
  4. 解析excel表格为DataSet
  5. the server responded with a status of 404 (Not Found)
  6. Effective C++学习笔记 条款07:为多态基类声明virtual析构函数
  7. hdoj 1342 Lotto【dfs】
  8. eclipse lint工具介绍
  9. SQLServer性能优化
  10. Mycat中的核心概念
  11. python常用的基本操作
  12. Ubuntu16.04 安装g++6
  13. GitHub Flow & Git Flow 基于Git 的两种协作开发模式
  14. excel数据处理,公式
  15. Lintcode40-Implement Queue by Two Stacks-Medium
  16. React文档(十五)使用propTypes进行类型检查
  17. Sqlite安装教程
  18. HMM模型学习笔记(前向算法实例)
  19. HTTP/HLS/RTMP超级负载测试工具
  20. BZOJ5102:[POI2018]Prawnicy(贪心,堆)

热门文章

  1. PHP的session存储对PHP运行环境的影响
  2. Java自带命令详解
  3. Atitit. 注册表操作查询 修改 api与工具总结 java c# php js python 病毒木马的原理
  4. BASE64 编码解码
  5. 反射学习1、反射机制的介绍和基本的API的使用
  6. 堆积木----vector防止内存超限
  7. js从数组中提取数字
  8. mybatis传多个参数实例
  9. invalid comparison: java.util.ArrayList and java.lang.String——bug解决办法
  10. sds(简单动态字符串) 内存预分配优化策略