0

我正在编写一个系统,它可以根据我们在麦当劳收到的日程安排邮件来制定每日日程安排。这是我老板的要求。我在 PHP 中这样做。

我们收到的邮件如下:

贝斯特隐藏,

Hier is je rooster voor de week van 16-7-2012:

maandag 2012 年 7 月 16 日 17:00 - 23:00,KEU dinsdag 2012 年 7 月 17 日 11:30 - 19:15,COU woensdag 2012 年 7 月 18 日 16:30 - 23:00,KEU

总共 ben je 20,25 uur ingeroosterd,3 班次和 0 sluitdiensten。

vrijvraagverzoeken kun je me bereiken 的 Voor vragen 来自:rooster.1197@nl.mcd.com。

Ben je verkeerd ingeroosterd en heb je wel goed vrijgevraagd, wil je meer werken? 邮件丹 naar rooster.1197@nl.mcd.com!Ik ga dan kijken wat ik voor je kan doen。

让操作!Komende weken moeten er een anantal mensen naar de drive toe!Achter je dienst staat dan DRI。Het is de bedoeling dat iedereen daar af en toe een dienst gaat werken zodat iedereen genoeg uren kan krijgen。Dit betekend dus dat iedereen maximaal 每周 1x 在 de drive wordt geroosterd 中。Jullie dienen op eigen vervoer te gaan。Dit geldt ook voor de nachtdiensten in de drive。Er worden altijd groepjes gestuurd dus spreek 遇到了 elkaar af。

格罗滕,

隐藏

我想解析出以下几行:

maandag 16 juli 2012 17:00 - 23:00, KEU
dinsdag 17 juli 2012 11:30 - 19:15, COU
woensdag 18 juli 2012 16:30 - 23:00, KEU

所以我可以通过它们循环..

我将如何做到这一点,我想通过使用正则表达式,但我不知道如何..

斯文

4

3 回答 3

1

您可能首先使用更简单的正则表达式提取所有类似的标记:

    $day  = "maandag|dinsdag|woensdag|othertag|andtag|sotag|ontag";
    $reg  = "#($day) (\d+) (\w+) (\d+) (\d+):(\d+) - (\d+):(\d+), (\w+)#smi";
    $days = preg_match_all($reg, $text, $items, PREG_SET_ORDER);

    print_r($items);

每个 $item[] 将采用以下形式:

    (
        [0] => maandag 16 juli 2012 17:00 - 23:00, KEU
        [1] => maandag
        [2] => 16
        [3] => juli
        [4] => 2012
        [5] => 17
        [6] => 00
        [7] => 23
        [8] => 00
        [9] => KEU
    )

因此,您将能够根据需要使用各种元素。

于 2012-07-09T12:41:42.883 回答
1
<?php 
$str = 'Beste HIDE,

Hier is je rooster voor de week van 16-7-2012:

maandag 16 juli 2012 17:00 - 23:00, KEU
dinsdag 17 juli 2012 11:30 - 19:15, COU
 woensdag 18 juli 2012 16:30 - 23:00, KEU

In totaal ben je 20,25 uur ingeroosterd, 3 shifts and 0 sluitdiensten.

Voor vragen of vrijvraagverzoeken kun je me bereiken via: rooster.1197@nl.mcd.com.

  ....';

$data = explode("\n", $str);
echo $data[4].'<br/>'.$data[5].'<br/>'.$data[6];

?>

试试这个...

于 2012-07-09T12:42:24.997 回答
1

尝试[a-z]*\s[0-9]{1,2}[a-z]*\s[a-z]*\s[0-9]{4}\s[0-9]{2}:[0-9]{2}\s-\s[0-9]{2}:[0-9]{2},\s[a-z]*

测试:http ://regexr.com? 31fqr :)

于 2012-07-09T12:44:45.250 回答