登录

php - 求个获取指定字符之后的所有字符串 但是不包含指定字符的方法

strstr获取指定字符之后的所有字符串,其中是包含那个指定字符的,求个不包含指定字符的方法

# PHP
ringa_leeringa_lee2173 天前580 次浏览

全部回复(3) 我要回复

  • PHPzhong

    PHPzhong2017-04-10 17:43:41

    可以这样做(参考)

    <?php
    $allString = "I love Shanghai 123456!";
    $searchString = "Shanghai";
    $newString = strstr($allString, $searchString);
    $length = strlen($searchString);
    echo substr($newString, $length);
    

    或者

    <?php
    $allString = "I love Shanghai 123456!";
    $searchString = "Shanghai";
    $firstLength = strpos($allString, $searchString);
    $length = $firstLength + strlen($searchString);
    echo substr($allString, $length);
    

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-10 17:43:41

    使用正则匹配:

    <?php
    $allString = "I love Chongqing 123456!";
    preg_match("/Chongqing(?<right>.*)/", $allString, $matches);
    print_r($matches);

    其中,right只是给匹配的结果命名,最终输出:

    Array
    (
        [0] => Chongqing 123456!
        [right] =>  123456!
        [1] =>  123456!
    )

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-10 17:43:41

    $str = 'I love guangdong 123456!';
    $strDelimiter = 'guangdong';
    var_dump(preg_split('//m.sbmmt.com/m/'.preg_quote($strDelimiter,'//m.sbmmt.com/m/').'//m.sbmmt.com/m/',$str));
    
    # 如果确定strDelimiter只出现一次
    var_dump(strrev(strstr(strrev($str),strrev($strDelimiter),true)));
    
    # 替换
    var_dump(preg_replace('/.+?'.preg_quote($strDelimiter,'//m.sbmmt.com/m/').'//m.sbmmt.com/m/','',$str));
    

    回复
    0
  • 取消回复发送