-1

在 PHP 中如何使用 trim() 或 rtrim() 删除最后一个空格和后面的字符?

示例:

任何地址 23B

成为

任何地址

另一个地址 6

成为

另一个地址

4

3 回答 3

2

你不能。Trim 用于空格和制表符等,或指定的字符。你想要的是更具体的逻辑。

如果你想从最后一个空格:

$lastSpace = strrpos($string, ' ');
$street = substr($string, 0, $lastSpace);
$number = substr($string, $lastSpace+1);

您也可以implode在空间上,用于array_pop获取最后一个值,然后使用implode,但字符串操作上的数组函数与substr.
您也可以使用正则表达式来获取最后一个值,但是虽然它比字符串的数组操作更好,但您应该将其用作 B 计划,因为正则表达式也不是最轻量级的选项。

于 2020-11-09T09:09:54.523 回答
1

你为什么不使用正则表达式?

$address = 'Any Address 23B';
$matches = [];
preg_match('/(?P<street>.*) \w+$/', $address, $matches);

print_r($matches['street']); // OUTPUT: "Any Address"
于 2020-11-09T09:16:51.527 回答
0

如果您不想使用上面的答案,这是一种没有正则表达式的解决方案:


$string = 'Any Address 23B';
$stringRev = explode(' ', strrev($string), 2);
echo strrev($stringRev[1]);  //result: Any Address

于 2020-11-09T09:21:30.077 回答