代码之家  ›  专栏  ›  技术社区  ›  michaelmcgurk

在3个单词后裁剪字符串

php
  •  -1
  • michaelmcgurk  · 技术社区  · 6 年前

    我有以下字符串:

    $msg = "Hello, my name is John!";

    我想把前三个单词切掉,剩下的用字符串存储。

    我怎样才能做到这一点?会用吗 explode 功能?

    最终, $remainder 将等于: is John!

    2 回复  |  直到 6 年前
        1
  •  0
  •   cn007b Dheerendra Kulkarni    6 年前

    你可以试着用 preg_replace :

    <?php
    
    $msg = "Hello, my name is John!";
    var_dump(preg_replace("/^([\w]+[,]?\s+){3}/", "", $msg));
    

    结果:

    string(8) "is John!"
    

    也许你需要改进一下regex,因为这里有一个词:
    至少1个字符 a-z, A-Z, 0-9, _
    后跟可选 , (逗号)
    后跟至少1个空格。

        2
  •  0
  •   Alex    6 年前

    就像你说的-你可以用爆炸。

    https://ideone.com/qpzwnV

    $msg = "Hello, my name is John!";
    
    $arr = explode(' ',$msg);
    if(count($arr)<=3) {
        echo 'Trimmed: (empty)';
    } else {
        for ($i=0;$i<3;$i++) array_shift($arr);
        echo 'Trimmed: '.implode($arr, ' ');
    }
    

    PS:但你为什么需要这个?