清风皆过客

你永远都不会知道明天会发生什么,所以开心的过好每一天吧!

博客园 首页 新随笔 联系 订阅 管理

正则:检测字符串的一种规则。简写成  /规则/

字符串和正则有关的方法

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

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

    Replace()   在字符串中查找匹配的子串,并替换与正则表达式匹配的子串。如果检索到   返回替换后的新字符串   如果没有检索到,返回原字符串

 

字符串的检索分两种结果:

    第一种是查找型,查找到一次就终止,不会在查找

    第二种是捕获型,捕获型也分两种,一个是捕获最先出现的,一种是捕获所有相匹配的。

 

正则对象的两个方法

    test()    检索字符串 中指定的值,返回true或false

    exec()  检索字符串中指定的值,返回一个数组,有找到的值,返回其位置,没有就返回null

 

正则的性质

    正则的懒惰型:正则在捕获的时候,当第一次捕获成功了,就直接返回,不在向下捕获,这就是正则的懒惰型。

           解决方法:在正则的后面加上修饰符   /g  

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

           解决方法:+代表一个或多个数字   ?代表0个或1个     在+后面跟?  /\d+?/  就可以解决。

 

正则表达式的字符

i    执行对大小写不敏感的匹配
g 执行全局匹配
m 执行多行匹配

\d 查找数字
\s 查找空字符
\b 查找单词边界

n+ 匹配任何包含至少一个n的字符串
n* 匹配任何包含0个或多个n的字符串
n? 匹配任何包含0个或1个n 的字符串

php的正则表达式

    preg_match    执行一个正则表达式匹配

 $str="helloworld";
 $reg="/hello/";
 echo preg_match($reg,$str);    //返回值有0或1   找不到符合条件的就是 0  查找到就是 1

    preg_match_all    执行一个全局正则表达式匹配

$str="helloworldhello1811hello";
$reg="/hello/";
echo preg_match_all($reg,$str);    //返回值有 0 或 n  n代表匹配到符合条件的总次数    0 就是没查到

    preg_replace    执行一个正则表达式的搜索和替换

$str="['hello','456']";
$reg="/hello/";
var_dump( preg_replace($reg,"world",$str));    //第二个参数表示替换的单词   第三个参数表示替换后的结果

    preg_split    通过一个正则表达式分割字符串

$str="123helloworldhello1811helloweb";
$reg="/hello/";
var_dump(preg_split($reg,$str));    //返回切割后的字符串

 

posted on 2019-08-22 09:05  路亻  阅读(166)  评论(0编辑  收藏  举报