strpos(), strrpos(), stripos(), strripos(), strrchr(), substr(), stristr(), strstr(). .....
php里有这么多相关此功能的函数,其实还有其它的

解决方案 »

  1.   

    php已经提供了强大的功能,为什么不用呢?<?php
    $s = <<< TEXT
    基本信息:
       aaa……
       ……
    工作经历:
       bbb……
       ……
    教育经历:
       ccc……
       ……
    TEXT;
    $p = "/(基本信息:|工作经历:|教育经历:)/";
    $r = preg_split($p, $s, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE);
    print_r($r);
    ?>
    输出
    Array
    (
        [0] => Array
            (
                [0] => 基本信息:
                [1] => 0
            )    [1] => Array
            (
                [0] => 
       aaa……
       ……            [1] => 10
            )    [2] => Array
            (
                [0] => 工作经历:
                [1] => 33
            )    [3] => Array
            (
                [0] => 
       bbb……
       ……            [1] => 43
            )    [4] => Array
            (
                [0] => 教育经历:
                [1] => 66
            )    [5] => Array
            (
                [0] => 
       ccc……
       ……
                [1] => 76
            ))
      

  2.   

    请问   PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE   代表什么意思?
     [0] => Array
            (
                [0] => 基本信息:
                [1] => 0            //这个0是代表位置么?
            )    [1] => Array
            (
                [0] => 
       aaa……
       ……            [1] => 10       //这个10是代表位置么?        )
      

  3.   

    "/(基本信息:|工作经历:|教育经历:)/"这个次序和下面长字符串次序不对应会有问题么?
    比如说
    教育经历:
       ccc……
       ……
    工作经历:
       bbb……
       ……
    基本信息:
       aaa……
       ……
    也就是实际次序打乱影响结果么?
      

  4.   

    你不看手册的吗?
    1、
    PREG_SPLIT_NO_EMPTY 不输出空项
    PREG_SPLIT_DELIM_CAPTURE 输出匹配项
    PREG_SPLIT_OFFSET_CAPTURE 输出匹配项的位置2、是的3、不影响,与关键字的位置无关。所以结果中要包含匹配项,以便识别