我正在编写一个系统,可以根据我们在麦当劳获得的日程邮件制作每日时间表。这是我老板的要求。我在PHP中这样做。
我们收到的邮件如下:
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
在totaal ben je 20,25 uur ingeroosterd,3班和0 sluitdiensten。
vri vv vragen of vrijvraagverzoeken kun je me bereiken via:rooster.1197@nl.mcd.com。
Ben je verkeerd ingeroosterd en heb je wel goed vrijgevraagd,wil je meer werken?邮件dan naar rooster.1197@nl.mcd.com! Ik ga dan kijken wat ik voor je kan doen。
让操作! Komende weken moeten er een aantal 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每周1次在de drive wordt geroosterd。 Jullie dienen op eigen vervoer te gaan。驾驶中驾驶dit geldt ook voor de nachtdiensten。 Er worden altijd groepjes gestuurd dus spreek遇见了elkaar af。
Groeten,
隐藏
我想解析以下几行:
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
所以我可以循环使用它们。
我怎么做到这一点,我想通过使用正则表达式,但我不知道如何...
斯文
答案 0 :(得分: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
)
因此,您可以根据需要使用各种元素。
答案 1 :(得分: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];
?>
试试这个......
答案 2 :(得分: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]*