Удалить последний символ строки, только если его " s"
Я пытаюсь написать код, который удалит последний символ из определенной строки только , если последняя буква этой строки - "s
$строковые значения
Parts
Sealless Tools
Strap
Подстрока удалит последнюю букву; однако, она также удалит p из ремешка, который нежелателен.
substr($string,0,-1)
Pregreplace удаляет последнюю букву s из каждого слова. Получилось бы без уплотнений инструменты в Sealles инструмент, который является нежелательным. Может быть, есть и другое выражение, которое я могу использовать?
preg_replace("/sb/", "", $string)
Я искал google , но не смог найти точного ответа на удаление последнего слова полной строки, только если это буква s.Все результаты были для отдельных слов.
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