【问题标题】:Get last 3 words from the string?从字符串中获取最后三个单词?
【发布时间】:2011-07-01 00:41:54
【问题描述】:

如何从字符串中获取最后三个单词?

我设法像这样开始工作:

$statusMessage = explode(" ", str_replace(' '," ",$retStatus->plaintext));
$SliceDate = array_slice($statusMessage, -3, 3);
$date = implode(" ", $SliceDate);
echo $date;

有没有更短的方法?也许有一个我不知道的PHP函数..

【问题讨论】:

    标签: php


    【解决方案1】:

    explode() 很好,但是一旦你完成了,你就可以使用

    $size = sizeof($statusMessage);
    

    最后三个是

    $statusmessage[$size-1]; 
    $statusmessage[$size-2]; 
    $statusmessage[$size-3]; 
    

    【讨论】:

    • 你的意思是 count() 而不是 sizeof() ?
    • @user 两者都有效。 count() 更易于阅读,不会与 C 的 sizeof 运算符混淆。
    • 确实,在 StackOverflow 上! +1 计数想法。
    【解决方案2】:
    preg_match('#(?:\s\w+){3}$#', $statusMessage );
    

    【讨论】:

    • 如果我的字符串长度小于 3,则返回空。
    【解决方案3】:

    preg_match("/(?:\w+\s*){1,3}$/", $input_line, $output_array);

    这会捕获 1 到 3 个单词,如果该行只有 3 个长,则其他正则表达式很接近

    【讨论】:

    • 如果我们只有字母数字值,它工作正常。但是当我添加点(.)、分号(;) 和任何其他特殊字符时,计算就会出错。
    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 2013-09-07
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多