2 回答
TA贡献2016条经验 获得超9个赞
PHP代码为:
function splitAtLastWord($sentence)
{
return preg_split("/\s+(?=\S*+$)/", $sentence);
}
$sentence = "Fluency in English Conversation Defklmno (1WIR)";
list($begin, $end) = splitAtLastWord($sentence);
list($first, $middle) = splitAtLastWord($begin);
$result = [$first, $middle, $end];
echo "<pre>" . print_r($result, TRUE) . "</pre>";
输出为:
Array
(
[0] => Fluency in English Conversation
[1] => Defklmno
[2] => (1WIR)
)
您也可以编写不带正则表达式的相同函数:
function splitAtLastWord($sentence)
{
$words = explode(" ", $sentence);
$last = array_pop($words);
return [implode(" ", $words), $last];
}
老实说,这是一种更好的方法。
这是一种计算上更有效的方法:
function splitAtLastWord($sentence)
{
$lastSpacePos = strrpos($sentence, " ");
return [substr($sentence, 0, $lastSpacePos), substr($sentence, $lastSpacePos + 1)];
}
看起来不太好看,但速度更快。
无论如何,定义这样一个单独的函数很有用,您可以在其他地方重用它。
- 2 回答
- 0 关注
- 139 浏览
添加回答
举报