2

次のような文字列があります

「2012-06-29 Some text 2012-06-30 Some text ..」上記のテキストをphpでsplit(日付の正規表現)を使用して分割していますが、その日付も取得する必要があります。文字列を分割するために使用した分割文字列を取得したかったのです。Split String 、日付、および処理する個別の変数に続く文字列が必要です。

お気に入り

   2012-06-29 App Started
   2012-06-30 Login Event

これをphpで取得するにはどうすればよいですか

4

2 に答える 2

3

みたいな?

preg_match_all("#(?<date>[0-9]{4}-[0-9]{2}-[0-9]{2}) (?<text>[^0-9]+)#", $text, $matches)

サンプルコード

        $text = "2012-12-25 xmas 1984-06-01 Puggans birhday 2012-07-28 today";

        preg_match_all("#(?<date>[0-9]{4}-[0-9]{2}-[0-9]{2}) (?<text>[^0-9]+)#", $text, $matches, PREG_SET_ORDER);

        foreach($matches as $current_match)
        {
                echo "<tr><td>" . $current_match['date'] . "</td><td>" . trim($current_match['text']) . "</td></tr>\n";
        }
?>
于 2012-06-28T10:38:36.283 に答える
0

PREG_SPLIT_DELIM_CAPTURE で preg_split も試してください。

http://www.php.net/manual/en/function.preg-split.php

$text="2012-06-29 App Started
2012-06-30 Login Event";

$data=preg_split("/([0-9]{4}\-[0-9]{2}\-[0-9]{2})/", $text, 0, PREG_SPLIT_DELIM_CAPTURE);

print_r($data);

与えます:

配列 ( [0] => [1] => 2012-06-29 [2] => アプリ開始 [3] => 2012-06-30 [4] => ログインイベント )

最初のものを切り取ると、すべてのデータが代替フィールドになります。

\nDATE で分割すると、テキストにも日付を含めることができます。

$text="2012-06-29 App Started 2003-20-02
2012-06-30 Login Event";

$data=preg_split("/\\n([0-9]{4}\-[0-9]{2}\-[0-9]{2})/", "\n".$text, 0, PREG_SPLIT_DELIM_CAPTURE);
于 2012-06-28T10:39:19.893 に答える