Получить последнее слово строки

Я пробовал несколько вещей, чтобы получить последнюю часть, я сделал это:

$string = 'Sim-only 500 | Internet 2500';
preg_replace("Sim-Only ^([1-9]|[1-9][0-9]|[1-9][0-9][0-9][0-9])$ | Internet ","",$string
AND
preg_match("/[^ ]*$/","",{abo_type[1]})

Первый не будет работать, а второй возвращает массив, но строка с реальной потребностью.

Ответ 1

Если вы после последнего слова в предложении, почему бы просто не сделать что-то подобное?

$string = '​Sim-only 500 ​| Internet 2500';
$pieces = explode(' ', $string);
$last_word = array_pop($pieces);

echo $last_word;

Я бы не рекомендовал использовать регулярные выражения, поскольку это не нужно, если вы действительно не хотите по какой-то причине.

$string = 'Retrieving the last word of a string using PHP.';
preg_match('/[^ ]*$/', $string, $results);
$last_word = $results[0]; // $last_word = PHP.

Метод substr() который они дали, вероятно, лучше подходит

$string = 'Retrieving the last word of a string using PHP.';
$last_word_start = strrpos($string, ' ') + 1; // +1 so we don't include the space in our result
$last_word = substr($string, $last_word_start); // $last_word = PHP.

это быстрее, хотя на самом деле это не так сильно влияет на такие вещи. Если вам постоянно нужно знать последнее слово в строке из 100 000 слов, вам, вероятно, придется по-другому это делать.

Ответ 2

Это должно сработать для вас:

$str = "fetch the last word from me";
$last_word_start = strrpos ( $str , " ") + 1;
$last_word_end = strlen($str) - 1;
$last_word = substr($str, $last_word_start, $last_word_end);

Ответ 3

Это зависит от того, что вы пытаетесь сделать (это трудно понять из вашего описания), но чтобы получить последнее слово из строки, которую вы можете сделать:

$split = explode(" ", $string);

echo $split[count($split)-1];

См. Раздел Как получить последнее слово строки для получения дополнительной информации.

Ответ 4

Там вы получаете общую функцию для получения последних слов из строки

public function get_last_words($amount, $string)
{
    $amount+=1;
    $string_array = explode(' ', $string);
    $totalwords= str_word_count($string, 1, 'àáãç3');
    if($totalwords > $amount){
        $words= implode(' ',array_slice($string_array, count($string_array) - $amount));
    }else{
        $words= implode(' ',array_slice($string_array, count($string_array) - $totalwords));
    }

    return $words;
}
$string = '​Sim-​only 500 | Internet 2500​';
echo get_last_words(1,  $string );