Предположим, что у нас есть вход для синтаксического анализатора, при котором данный символ (точка в этом случае) выполняет две функции: разделять строки на другие команды, а также инструктировать парсер повторять последней команды.Разделите строку с повторяющимся рисунком, сохраняя разделитель
Например:
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] => подцепить статья
[2] => go west
[3] =>
[4] =>
[5] => идти на север
[6] =>
[7] =>
)
Это, очевидно, неверно в двух случаях - нет точек не возвращаются и дополнительные команды в конце , Точки должны быть возвращены, поэтому наш парсер может решить, что пользователь хочет повторить свою последнюю команду.
Использование PREG_SPLIT_DELIM_CAPTURE
не имеет значения, несмотря на использование (\.)
в качестве регулярного выражения.