Intereting Posts

Разбирайте HTML и получите многомерный массив с датой с использованием регулярного выражения (скребущие данные)?

Я пытаюсь сгруппировать результаты, я получаю мудрый день.

Пожалуйста, напишите мой предыдущий вопрос. Как игнорировать ссылку http в строке и возвращать все остальное?

В принципе, сейчас я получаю список расписаний, но в нем нет какой-либо даты. Поэтому трудно понять, какое событие будет происходить вживую, с какой датой и временем, это путает людей из-за отсутствия даты, поскольку она показывает одинаковые сроки для несколько событий, которые на самом деле собираются жить в другую дату.

Из предыдущего вопроса я получил решение, которое идеально подходит (спасибо Denomales за решение!), Но просто нет даты.

Вот решение regex:

<font(?=\s|>)(?=(?:[^>=|&)]*|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\scolor=['"]?green['"]?)(?:[^>=|&)]|='(?:[^']|\\')*'|="(?:[^"]|\\")*"|=[^'"][^\s>]*)*>\s*(?:Stream\s*)?((?:(?!<\/font>).)*)<\/font>\s*[^<]*?([^<]+)\s+(\d+.\d+\s*\w{2}\s*-\s*\d+.\d+\s*\w{2})[^<]*?<font(?=\s|>)(?=(?:[^>=|&)]*|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\scolor=['"]?gold['"]?)(?:[^>=|&)]|='(?:[^']|\\')*'|="(?:[^"]|\\")*"|=[^'"][^\s>]*)*>(?:Stream\s*)?((?:(?!\s*https?:|<\/font>).)*) 

И вот пример данных:

 <font color="black" size="6">---</font><p> <font color="red" size="6">FRIDAY 6TH SEPTEMBER</font><p> <font color="gold"> *ENGLISH* </font> Some event with quotes, comma, slashes, dots and more 9.00pm-5.00pm <font color="red">Channel 18</font><p> <font color="gold"> *ITALIAN* </font> Some event with quotes, comma, slashes, dots and more 9.50pm-10.00pm <font color="red">Channel 02</font><p> <font color="gold"> *ENGLISH* </font> Some event with quotes, comma, slashes, dots and more 10:00AM-12:00pm <font color="red">Channel 05</font><p> <font color="gold"> *JAPANESE* </font> Some Event Name 11.20am-1.20pm <font color="red">CHANNEL IP 2 STREAM http://domain.com/abc/channel2.html</font><p> <font color="black" size="6">---</font><p> <font color="red" size="6">FRIDAY 7TH SEPTEMBER</font><p> <font color="gold"> *ENGLISH* </font> Some event with quotes, comma, slashes, dots and more 9.00pm-5.00pm <font color="red">Channel 18</font><p> <font color="gold"> *ITALIAN* </font> Some event with quotes, comma, slashes, dots and more 9.50pm-10.00pm <font color="red">Channel 02</font><p> <font color="gold"> *ENGLISH* </font> Some event with quotes, comma, slashes, dots and more 10:00AM-12:00pm <font color="red">Channel 05</font><p> <font color="gold"> *JAPANESE* </font> Some Event Name 11.20am-1.20pm <font color="red">CHANNEL IP 2 STREAM http://domain.com/abc/channel2.html</font><p> 

Теперь я пытаюсь получить дату ( FRIDAY 6TH SEPTEMBER ) в YYYY-MM-DD , а затем график событий.

Ожидаемый результат:

 Array( ['2013-09-06'] => Array ( [0] => Array ( 'language' => 'ENGLISH', 'title' => 'Some event name', 'startTime' => '9:00pm', 'endTime' => '5:00pm', 'channel' => 'channel 18', 'channelNum' => '18' ), [1] => Array ( 'language' => 'ITALIAN', 'title' => 'Some event name', 'startTime' => '12:00pm', 'endTime' => '2:00pm', 'channel' => 'Channel IP 2', 'channelNum' => '2' ), [2] => Array ( 'language' => 'ENGLISH', 'title' => 'Some event name', 'startTime' => '6:00pm', 'endTime' => '8:00pm', 'channel' => 'channel 20', 'channelNum' => '20' ), ), ['2013-09-07'] => Array ( [0] => Array ( 'language' => 'ENGLISH', 'title' => 'Some event name', 'startTime' => '9:00pm', 'endTime' => '5:00pm', 'channel' => 'channel 18', 'channelNum' => '18' ), [1] => Array ( 'language' => 'ITALIAN', 'title' => 'Some event name', 'startTime' => '12:00pm', 'endTime' => '2:00pm', 'channel' => 'Channel IP 2', 'channelNum' => '2' ), [2] => Array ( 'language' => 'ENGLISH', 'title' => 'Some event name', 'startTime' => '6:00pm', 'endTime' => '8:00pm', 'channel' => 'channel 20', 'channelNum' => '20' ), ), ) 

Пример вывода – это просто произвольный вывод, а не реальные данные или что-то еще.

Может ли кто-нибудь помочь? Было бы очень приятно.

Примечание. Я не хочу использовать какие-либо файлы разбора HTML, поэтому, пожалуйста, не рекомендуем, если у вас есть решение, которое намного лучше, чем регулярное выражение, которое у меня есть прямо сейчас.

Related of "Разбирайте HTML и получите многомерный массив с датой с использованием регулярного выражения (скребущие данные)?"