如何获取我用于拆分字符串的拆分字符串

时间:2012-06-28 10:32:54

标签: php

我有一个字符串如下

“2012-06-29一些文字2012-06-30一些文字......” 我使用split(日期的正则表达式)在php中拆分上面的文本,但我也需要得到那个日期。我想得到用于拆分字符串的拆分字符串。我需要Split String,日期和后面的字符串,用于处理单独的变量。

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

我怎样才能在php中获得这个

2 个答案:

答案 0 :(得分:3)

Somthingl喜欢?

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";
        }
?>

答案 1 :(得分: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] =&gt; [1] =&gt; 2012-06-29 [2] =&gt;应用已启动[3] =&gt; 2012-06-30 [4] =&gt;登录事件)

关闭第一个,然后所有数据都是替代字段。

如果您按\ n分割,则可以在文本中包含日期。

$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);
相关问题