zoukankan      html  css  js  c++  java
  • preg_replace的一些细节

    .$pattern是数组,$replace也是数组,则中对应的 元素进行替换

    php

    preg_replace有五个参数,有三个是必须参数

    Preg_replace(mixed $pattern, mixed $replacement, mixed $subject [,int $limit = -1 [,int $count ]]);

    $pattern 可以是字符串,字符串数组,或者preg

    $replace 是用于替换的字符串或字符串数组

    $subject 目标字符串或者目标字符串数组

    $limit 每个模式在每个$subject上最大的替换次数,默认是-1(无限次)

    $count 返回在目标字符串所替换的次数

    在repalce与pattern中有几点要注意的

    1.$pattern是数组,$replace也是字符串,那么所有模式都使用这个字符串来匹配;

     

    2.$pattern是数组,$replace也是数组,则中对应的 元素进行替换

    3.如果数组$pattern大于$replace,则多出来的$pattern用空的字符串进行替换,


    $replace少于$patterns,则匹配到的值全部用空字符串来替换

    4.对于上面例子中出现的${1},${2},${3},这个叫做包含后向引用,里面的数字代表原子出现的位数,有两种写法,一种是\n,一种是${n},推荐使用第二种写法.会把目标字符串匹配到的pattern中的原子,按照要求变化目标字符串的格式,或者匹配的原子原样输出(这里举两个例子)

     

     把时间按照 下划线分割开来,${3}就是匹配的到$patterns中的第三个原子((d{1,2})),${4}就是匹配的到$patterns中的第四个原子((d{1,2}))以此类推,

     

     例如大家熟悉的smarty模板引擎中编译后替换的方法

    5.第四个参数的$limit的使用,第四个参数的意思是每个模式在每个subject上进行替换的最大次数


    如果limit为n,它只用正则替换n次

    6.第五个参数$count的使用,$count的意思是,subject目标字符串被替换的次数,拿第五点的例子来说



    上面代码中的例子运行结果如下:
     
     

    附加:

    preg_replace与str_replace的关系是什么呢?

    我们可以理解为str_replace是preg_repalce的一个子集.只是str_replace中的第一个参数写的是string,而preg_replace写的是一个正则表达式

  • 相关阅读:
    Docker基本命令及工作原理
    Docker安装
    linux命令
    MTPuTTy使用
    SpringBoot--swagger搭建、配置及使用
    idea使用技巧
    Idea插件
    IDEA开发工具使用 git 创建项目、拉取分支、合并分支
    git命令
    javbus爬虫-老司机你值得拥有
  • 原文地址:https://www.cnblogs.com/chenshishuo/p/4912456.html
Copyright © 2011-2022 走看看