Intereting Posts
Проблема маршрутизации имени модуля Zend Framework 2 Как сделать опрос базы данных в реальном времени в MySQL / PHP? Итерации через определенное дерево каталогов и сохранение всех .ttf-файлов в массив в PHP Как разбивать строки в цикле foreach с помощью PHP Можно ли загружать файл php.ini по умолчанию для разных версий? Передайте строку PHP переменной JavaScript (и удалите строки перевода) Поиск следующего документа в MongoDb Как вычесть в mongodb php Laravel: Как удалить строки из нескольких таблиц с одинаковым идентификатором только с одним запросом? .htaccess: перенаправить все HTTP-запросы на один файл без ссылок 404 или. код Codeigniter – правильно импортировать JS / CSS / IMG Как использовать str_replace для замены одиночных и двойных кавычек Объединение изображений в PHP как хранить значения массива в одной ячейке в таблице mysql, используя php? Как это называется, когда вы можете заполнить строку с помощью <<< и end-delimiter?

PHP-REGEX – Тип множественного выбора

У меня есть строка вроде этого:

$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, который вы хотите