zoukankan      html  css  js  c++  java
  • split(),preg_split()与explode()函数分析与介

    split(),preg_split()与explode()函数分析与介

    split()函数可以实现使用正则表达式来把字符串拆分为较小的块,并作为一个数组返回,如果出现错误,则返回false。同样也可以根据你需要选择要返回多少个小块。array split(string $pattern,string $string [...
    split()函数可以实现使用正则表达式来把字符串拆分为较小的块,并作为一个数组返回,如果出现错误,则返回false。同样也可以根据你需要选择要返回多少个小块。
    array split(string $pattern,string $string [,int $limit])
    pattern:相应的正则表达式
    string:字符串
    limit:指定字符串分割的最大数目
    <?php
    $expression="3*5+12/6-15";
    $pattern="/";
    $limit=3;
    $parts=split($pattern,$expression,$limit);
    print_r($parts);
    ?>
    结果:
    Array
    (
        [0] => 3*5+12
        [1] => 6-15
    )

    <?php
    $expression="3*5+12/6-15";
    $pattern="[+/]";
    $limit=3;
    $parts=split($pattern,$expression,$limit);
    print_r($parts);
    ?>
    结果:
    Array
    (
        [0] => 3*5
        [1] => 12
        [2] => 6-15
    )
    preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费。

    explode()函数:使用一个字符串分割另一个字符串
    <?php
    // 示例 1
    $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
    $pieces = explode(" ", $pizza);
    echo $pieces[0]; // piece1
    echo $pieces[1]; // piece2

    // 示例 2
    $data = "foo:*:1023:1000::/home/foo:/bin/sh";
    list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
    echo $user; // foo
    echo $pass; // *

    ?>
    // 示例 3
    <?php
    $str = 'one|two|three|four';

    // 正数的 limit
    print_r(explode('|', $str, 2));

    // 负数的 limit(自 PHP 5.1 起)
    print_r(explode('|', $str, -1));
    ?>

    以上例程会输出:

    Array
    (
        [0] => one
        [1] => two|three|four
    )
    Array
    (
        [0] => one
        [1] => two
        [2] => three
    )

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

    4.3.0版本:增加了标记PREG_SPLIT_OFFSET_CAPTURE.
    4.0.5版本:增加了标记PREG_SPLIT_DELIM_CAPTURE.
    <?php
    $str = 'string';
    $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
    print_r($chars);
    ?>
    以上程序输出样式:
    Array
    (
        [0] => s
        [1] => t
        [2] => r
        [3] => i
        [4] => n
        [5] => g
    )
    <?php
    $str = 'hypertext language programming';
    $chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
    print_r($chars);
    ?>
    以上程序输出样式:
    Array
    (
        [0] => Array
            (
                [0] => hypertext
                [1] => 0
            )

        [1] => Array
            (
                [0] => language
                [1] => 10
            )

        [2] => Array
            (
                [0] => programming
                [1] => 19
            )

     



  • 相关阅读:
    PHP全栈学习笔记3
    PHP全栈学习笔记3
    JavaScript基础系列
    JavaScript基础系列
    Java语言
    Java语言
    HTML基础系列
    HTML基础系列
    PHP全栈从入门到精通1
    PHP全栈从入门到精通1
  • 原文地址:https://www.cnblogs.com/muxiaoye/p/fac7226f9f4f0fdddabe59cdeb18e32d.html
Copyright © 2011-2022 走看看