Удалить последний символ строки, только если его " s"



Я пытаюсь написать код, который удалит последний символ из определенной строки только , если последняя буква этой строки - "s




$строковые значения



Parts
Sealless Tools
Strap


Подстрока удалит последнюю букву; однако, она также удалит p из ремешка, который нежелателен.



substr($string,0,-1)


Pregreplace удаляет последнюю букву s из каждого слова. Получилось бы без уплотнений инструменты в Sealles инструмент, который является нежелательным. Может быть, есть и другое выражение, которое я могу использовать?



preg_replace("/sb/", "", $string)


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

484   4  
PHP

4 ответов:

Некоторые варианты...

1) $string = preg_replace('/s$/', '', $string); // slight modification to yours which limits to trailing 's'

2) $string = rtrim($string, 's'); // note: will remove 1+

3) $string = substr($string, -1) === 's' ? substr($string, 0, -1) : $string;

4) $string = $string[-1] === 's' ? substr($string, 0, -1) : $string; // php 7.1+ only

Вы можете использовать substr(), чтобы проверить последнюю букву, прежде чем удалить ее:

if (substr($string,-1) == 's') // get/check the last letter
    $string = substr($string, 0, -1); // remove last letter

Почему здесь используется регулярное выражение? Регулярные выражения предназначены для более сложных задач. Здесь вы можете просто использовать:

if($string[strlen($string)-1] === 's'){
    $string = substr($string, 0, -1);
}

Use rtrim :

$string = rtrim($string, 's');

Единственный риск здесь заключается в том, что у вас есть строка с несколькими буквами s на конце, например "Toolss", которая становится "Tool" вместо "Tools"

Comments

    Ничего не найдено.