У меня есть строка вроде этого:
$str = "1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway"
То, что я хочу сделать, это получить такой вывод и сохранить каждый вопрос в div
:
1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway
На данный момент я создал этот готовый код для регулярного выражения (все еще новичок, извините!)
$str = "1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway" $repl = preg_replace('#(\d+:.*?)(?=\d+:|$) *#', "$1", $str); echo "<div>$repl</div>";
И это результат, и он хранится в одном div
:
1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway
Я смущен тем, как отделить каждый вопрос и как поставить div
на каждый выбор … может ли кто-нибудь дать совет, что мне делать?
Вы можете использовать preg_split
следующим образом:
$str = "1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway"; print_r(preg_split('/(?=[a\d]+\.)/', $str, -1, PREG_SPLIT_NO_EMPTY)); Array ( [0] => 1. What is love? [1] => a. Haddaway b. Haxxaway c. Hassaway d. Hannaway [2] => 2. What is love? [3] => a. Haddaway b. Haxxaway c. Hassaway d. Hannaway )
(?=[a\d]+\.)
– это просмотр, который разбивается, когда следует number or letter a
плюс плюс DOT.
Предполагая, что ваш вход всегда согласован.
AFAIK, вы можете решить это, используя токенизатор PHP. Для каждого вопроса (1 …?) Вы можете переформатировать текст, чтобы добавить div, который вы хотите