CSDN是我家,给我解决了很多问题,虽然努力查找资料,努力学习还没是没解决一个正则小问题。要求:
有一段文字如下(其实就是一php文件):
<?php
return array(
/**-- BEGIN database --*/
'database' => array(
......
),
/**-- END database --*/);要求用正则得到/**-- BEGIN database --*/和/**-- END database --*/之间的内容。另外还需要得到database ,当然可能还是其他的。上面只是一个例子
正则没学好,找了些资料还是没解决,高手帮下忙,100分相送。

解决方案 »

  1.   

    $str = <<<STR
    <?php 
    return array( 
    /**-- BEGIN database --*/ 
    'database' => array( 
    ...... 
    ), 
    /**-- END database --*/ );
    STR;
    preg_match_all("/\/\*\*-- BEGIN database --\*\/(.*)\/\*\*\-\- END database \-\-\*\//is", $str, $matches);
    var_dump($matches);
      

  2.   

    $text = <<< TEXT
    <?php 
    return array( 
    /**-- BEGIN database --*/ 
    'database' => array( 
    ...... 
    ), 
    /**-- END database --*/ ); 
    TEXT;preg_match_all('#/\*\*-- BEGIN (.+) --\*/(.*)/\*\*-- END \\1 --\*/#sm', $text, $reg);
    print_r($reg);Array
    (
        [0] => Array
            (
                [0] => /**-- BEGIN database --*/ 
    'database' => array( 
    ...... 
    ), 
    /**-- END database --*/
            )    [1] => Array
            (
                [0] => database
            )    [2] => Array
            (
                [0] =>  
    'database' => array( 
    ...... 
    ),         ))
      

  3.   

    非常感谢了,自己在csdn混了差不多10年了,受益很多。再次感谢!