假設我們有一個命令解析器輸入,其中給定字符(在這種情況下是一個點)服務於兩個功能:將字符串拆分爲其他命令,並指示解析器重複最後的命令。用重複模式分割字符串,保留分隔符
例如:
go north.pick up item.go west...go north..
什麼,這將實現的是「北上,拿起項目,往西走三次,北上兩次」。但是,使用preg_split
時,我無法獲得所需的輸出。
所有我到現在是:
$temp = 'go north.pick up item.go west...go north..';
preg_split('/\.)/', $temp);
其產生:
陣列
(
[0] =>北上
[1] =>拾item
[2] =>去西
[3] =>
[4] =>
[5] =>北上
[6] =>
[7] =>
)
這顯然是在兩種情況下不正確 - 沒有點返回和一個額外的在結束命令。點必須返回,所以我們的解析器可以計算出用戶想要重複他們的最後一個命令。
儘管使用(\.)
作爲正則表達式,但使用PREG_SPLIT_DELIM_CAPTURE
的效果並不理想。