0

我正在尝试对我得到的结果进行分组。

请参考我之前的问题。 如何忽略字符串中的http链接并返回其他所有内容?

基本上现在我得到了时间表列表,但其中不包含任何日期,所以很难理解哪个事件将在哪个日期和时间上线,这让人们感到困惑,因为没有日期,因为它显示相同的时间多个事件实际上将在不同的日期上线。

从上一个问题中,我得到了一个完美的解决方案(感谢 Denomales 的解决方案!),但没有日期。

这是解决方案正则表达式:

<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 SEPTEMBERYYYY-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 解析库,所以请不要推荐,除非你有比我现在拥有的正则表达式更好的解决方案。

4

0 回答 0