删除字符串的最后一个字符,如果它是一个“s”

时间:2018-02-14 16:35:06

标签: php

我正在尝试编写一个代码,如果该字符串的最后一个字母是“s

,则会删除特定字符串 ONLY 中的最后一个字符

$ string值

Parts
Sealless Tools
Strap

子串将删除最后一个字母;但是,它也会从皮带上移除不需要的皮带。

substr($string,0,-1)

pregreplace 会删除每个单词的最后一个。它会将Sealless Tools变成Sealles Tool,这是不受欢迎的。也许我可以使用不同的表达方式?

preg_replace("/s\b/", "", $string)

我搜索了谷歌但是找不到确切的答案,只有在字母s中删除完整字符串的最后一个字。所有结果都是单个词。

4 个答案:

答案 0 :(得分:5)

一些选项......

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

答案 1 :(得分:4)

您可以使用substr()检查删除之前的最后一个字母:

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

答案 2 :(得分:0)

为什么在这里使用regexp? RegExps适用于更复杂的问题。在这里你可以简单地使用:

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

答案 3 :(得分:0)

使用rtrim

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

这里唯一的风险是,如果你在一端有一个包含多个字母的字符串,比如' Toolss'那就变成了'工具'而不是'工具'

相关问题