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 關注
- 164 瀏覽
添加回答
舉報