php正则

正则:检测字符串的一条规则

Json本质还是字符串

正则的定义 简写 /规则/ 比如/45613/检测字符串必须有45612;

字符串和正则有关的方法。

Match()  查找找到一个或多个正则表达式的匹配 有就返回查找的结果 没有就是null

语法:string.match(reg)

Search() 查找与正则表达式相匹配的值 检索不到返回-1 返回查找的字符首次在字符串中的位置

Replace()在字符串中查找匹配的子串 并替换与正则表达式匹配的子串

如果检索到 返回替换后的新字符串 如果没有检索到 返回字符串

语法:string.searc(red)

注意的

   1.字符串中的. 在正则中如果就代表一个. 需要转义.

   /./ 代表任意一个字符 /./代表一个.

   2.

正则对象的两个方法

   Text()  检索字符串中指定的值 返回truefalse

   语法 reg.test(string)

   Exec()  检索字符串中指定的值 返回一个数组 有找到的值并确定其位置找不到返回null

正则的特征

   1.正则的懒惰性:

      正则在捕获的时候 当第一次捕获成功了  就直接返回 不再向下捕获 这就叫正则的懒惰性

   解决正则的懒惰性

   在正则的后面加上修饰符/g

   2.正则的贪婪性:

    /d+/去捕获一个字符串中的数字 他会尽可能多的捕获全部符合条件的 这叫正则的贪婪性

 

解决正则的贪婪性 /d+/ +代表1个或多个 ?代表0个或1

+后面跟一个? /d+?/

解决正则的贪婪性

 

 

 

 

 

 

字符串检索 分两种结果

第一种是查找型 查找到就终止 不会向下继续查找

第二种是捕获型 分两种 第一是捕获首次出现的  第二种是捕获所有的/g

分组捕获 () 这是分组捕获的标志 将大正则分组成几个小正则 在正则中1 代表第一个分组 2代表第二个分组

   比如: /(a)(b)12/ 代表abab这个规则

在分组捕获中

结果即返回了大正则的捕获结果 也返回了小正则的捕获结果

   如果不想捕获某一个分组中的内容 在对应的分组中的前面加上?: 就可以了同时分组引用(12)也失效

一旦分组捕获成功 在正则的类上会给$1 $2 等赋值

RegExp $1 也是分组引用

1 也是分组引用 只能在正则中起作用

Php的正则方法

  Preg_match()执行一个正则表达式匹配

参数1reg 参数2string  返回值是01  查到就是1  查不到就是0

Preg_match_all() 执行一个全局正则表达式匹配

参数1 reg  参数2string 返回值是0n n 是查找到总次数 0 是没有查到

Preg_replace()执行一个正则表达式的搜索和替换

参数1reg 参数2newstring 参数3

原文地址:https://www.cnblogs.com/ymlo/p/11392227.html