我需要知道如何用 PHP 将字符串中的最后一个 "s" 替换为 ""。
假设有一个字符串 testers,输出应该是 tester。 它只应该替换最后一个 "s",而不是字符串中的所有 "s"。 要在 PHP 中实现这个功能,可以使用以下代码:
```php $string = 'testers'; $string = preg_replace('/s([^s]*)$/', '$1', $string); ```这将匹配字符串中的最后一个 "s",并用空字符串替换它。
我需要知道如何用 PHP 将字符串中的最后一个 "s" 替换为 ""。
假设有一个字符串 testers,输出应该是 tester。 它只应该替换最后一个 "s",而不是字符串中的所有 "s"。 要在 PHP 中实现这个功能,可以使用以下代码:
```php $string = 'testers'; $string = preg_replace('/s([^s]*)$/', '$1', $string); ```这将匹配字符串中的最后一个 "s",并用空字符串替换它。
if (substr($str, -1) == 's')
{
$str = substr($str, 0, -1);
}
s
是最后一个字符时删除它。 - Felix Klings
? - Felix Kling更新:好的,也可以使用strrpos
和substr_replace
函数来实现:
$str = "A sentence with 'Testers' in it";
echo substr_replace($str,'', strrpos($str, 's'), 1);
// Ouputs: A sentence with 'Tester' in it
strrpos
函数返回字符串最后一次出现的位置的索引,而substr_replace
函数则从指定位置开始替换一个字符串。
(正如我刚刚注意到的,这与 Gordon 提议的方法相同。)
到目前为止,所有答案都会移除单词的最后一个字符。然而,如果你真的想替换字符的最后一次出现,可以使用preg_replace
和负向前瞻来实现:
$s = "A sentence with 'Testers' in it";
echo preg_replace("%s(?!.*s.*)%", "", $string );
// Ouputs: A sentence with 'Tester' in it
function removeLastOccurenceOfChar($char, $string)
{
if( ($pos = strrpos($string, $char)) !== FALSE) {
return substr_replace($string, '', $pos, 1);
}
return $string;
}
echo removeLastOccurenceOfChar('s', "the world's greatest");
// gives "the world's greatet"
$str = preg_replace("/s$/i","",rtrim($str));
最简单的解决方案是使用rtrim()
这正是该函数旨在使用的内容: 从字符串末尾删除空格(或其他字符)。
没有比这更简单的了,我不确定为什么会有人建议从正则表达式转向“if/else”块。
这是您的代码:
$string = "Testers";
$stripped = rtrim( $string, 's' );
测试人员