正则表达式

正则表达式:正则表达式是一种字符串搜索和匹配的工具。

正则表达式对目标进行匹配,把符合条件的结果显示出来。

pattern = 正则表达式  subject = 目标数据

preg_match($pattern,$subject,$array);

    $array查询结果集 只匹配一次,匹配到之后return返回匹配次数


preg_match_all($pattern,$subject,$array);

   $array查询结果集 只匹配全部,匹配到之后return返回匹配次数



preg_replace($pattern,$replacement,$subject);

preg_filter($pattern,$replacement,$subject);

 

$replacement 要替换的字符串  替换规则和替换内容和目标数据都可为数组  

preg_replace return会返回所有数据                                  

preg_filter return只会返回替换过的数据  






preg_grep($pattern,$subject)

返回出符合匹配的结果



preg_split($pattern,$subject)
  以表达式分割目标数据并返回数组
 

preg_quote($subject )  

  给目标数据中的正则符号添加反斜线

  正则表达式特殊字符有: . + * ? [ ^ ] $ ( ) { } = ! < > | : -

正则函数匹配环境

  preg_match 用于表单验证

  preg_replace 用于词语过滤

正则表达式基本语法

 对汉字进行搜索的时候最好进行转换Unicode编码,因为有时候代码的编码不同会产生错误

 原子的筛选方式

  |  匹配两个或者多个分支

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

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

元字符

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

  d  匹配任意一个十进制数字 同 [0-9]

  D  匹配任意一个非十进制数字  同  [^0-9]

  s  匹配任意一个不可见原子  同  [f v] 

  S  匹配任意一个可见原子  同  [^f v]

  w  匹配任意一个数字、字母或下划线  同  [0-9a-zA-Z]

  W  匹配任意一个非数字、字母或下划线  同  [^0-9a-zA-Z] 

量词

  {n}  表示前面的原子正好出现n次

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

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

  *  匹配0次、1次或者多次之前的原子  同  {0,}

  +  匹配1次或者多次其之前的原子  同  {1,}

  ?  匹配0次或者1次之前的原子  同  {0,1}

 边界控制

   ^  匹配字符串开始的位置

  $  匹配字符串结尾的位置

  ()  匹配其中的整体为一个原子

贪婪匹配和懒惰匹配

$pattern='/imooc.+123/U';

$subject='I love imooc_123123123123132';

$matches=array();

preg_match($pattern, $subject,$matches);

当$pattern 不在结尾+U的时候为贪婪模式  匹配结果为imooc_123123123123132

当$pattern 在结尾+U的时候为懒惰模式  匹配结果为imooc_123

 修正模式

  U  懒惰匹配

  i  忽略英文字母大小写

  x  忽略正则表达式中的空白

  s  让元字符 ‘ . ’匹配包括换行符在内所有字符

  e  


原文地址:https://www.cnblogs.com/1010wjf/p/7800381.html