打印

[php] 问一个php多行数据的正则问题

$content=“
**正则问题**1
今日,两市小幅低开,开盘后沪指一度快速上扬,随后围绕3600点展开拉锯
小幅低开

**正则问题**2
今日,两市小幅低开,开盘后沪指一度快速上扬,随后围绕3600点展开拉锯
扬,随后围绕3600点展开拉锯

**正则问题**3
今日,两市小幅低开,开盘后沪指一度快速上扬,随后围绕3600点展开拉锯
开盘后沪指
”;

preg_match('/**正则问题**.*?(?=**正则问题**)/s', $content, $contentData);
echo "<pre>";
print_r($contentData);
echo "</pre>";

请问,如何将这个数据有3段开头内容相同的数据,分别通过正则放到数组里面。我取了半天都只能取入第一段数据到数组中。

Array
(
    [0] =>**正则问题**1
今日,两市小幅低开,开盘后沪指一度快速上扬,随后围绕3600点展开拉锯
小幅低开

)

[ 本帖最后由 xiaowj 于 2008-5-20 15:46 编辑 ]
《卧春》
暗梅幽闻花,卧枝伤恨底,遥闻卧似水,易透达春绿。岸似绿,岸似透绿,岸似透黛绿。
复制内容到剪贴板
代码:
preg_match_all('/(?<=**正则问题**)(.*?)(?:(?=**正则问题**)|$)/s', $content, $arr);
print_r($arr)
preg_match_all("~(?:**正则问题**)(?:.*?)(?=**正则问题**|$)~s", $content, $clips);
print_r($clips[0]);
新手
引用:
原帖由 sanders 于 2008-5-21 14:18 发表
preg_match_all("~(?:**正则问题**)(?:.*?)(?=**正则问题**|$)~s", $content, $clips);
print_r($clips[0]);
复制内容到剪贴板
代码:
("/(?:**正则问题**)(?:.*?)(?=**正则问题**|$)/s"
这样就可以运行了并且数据不重复出现在数组中。
Array
(
      [0] => Array
        ([0] =>**正则问题**1。。。。
          [1] =>**正则问题**2。。。。
          [2] =>**正则问题**3。。。。)

)

[ 本帖最后由 xiaowj 于 2008-6-13 10:46 编辑 ]
《卧春》
暗梅幽闻花,卧枝伤恨底,遥闻卧似水,易透达春绿。岸似绿,岸似透绿,岸似透黛绿。

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!

回复 sanders 在 3# 的帖子

我试用了一下发现。执行后数据被取入了2次,不知何故,求解:

Array
(
    [0] => Array
        ([0] =>**正则问题**1。。。。
          [1] =>**正则问题**2。。。。
           [2] =>**正则问题**3。。。。)

    [1] => Array
        ([0] =>**正则问题**1。。。。
          [1] =>**正则问题**2。。。。
           [2] =>**正则问题**3。。。。)
)
《卧春》
暗梅幽闻花,卧枝伤恨底,遥闻卧似水,易透达春绿。岸似绿,岸似透绿,岸似透黛绿。

TOP

回复 sanders 在 3# 的帖子

能给大家解释一下这段代码是怎么个定义的好么。

preg_match_all("~(?:**正则问题**)(?:.*?)(?=**正则问题**|$)~s", $content, $clips);
print_r($clips[0]);

还有一点,我想变成这样。

Array
(
[0] =>**正则问题**1。。。。
[1] =>**正则问题**2。。。。
[2] =>**正则问题**3。。。。
)

上面一段代码如何改啊。

[ 本帖最后由 xiaowj 于 2008-6-13 13:17 编辑 ]
《卧春》
暗梅幽闻花,卧枝伤恨底,遥闻卧似水,易透达春绿。岸似绿,岸似透绿,岸似透黛绿。

TOP