0

マクドナルドに届く予定メールをもとに日々の予定を立てるシステムを書いています。上司からの依頼です。私はPHPでこれをやっています。

私たちが受け取るメールは次のとおりです。

ベストHIDE、

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

合計で 20,25 uur ingeroosterd、3 シフト、0 sluitdiensten です。

rooster.1197@nl.mcd.com.

Ben je verkeerd ingeroosterd en heb je wel goed vrijgevraagd, of 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 genoeguren kan krijgen. 週に 1 回、ドライブワードで最大 1 回を使用してください。Jullie dienen op eigen vervoer te gaan. ドライブの夜に待っていました。Er worden altijd groepjes gestuurd dus spreek met 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 に答える