PHP Regex匹配多行

时间:2017-01-07 16:05:20

标签: php regex preg-match

我需要构建一个匹配多行代码的模式

    $data['infos'] = array();
    foreach ($infos as $info) {
        $data['infos'][] = array(
            'title' => $special['title'],
            'text'  => $special['summary'],,
        );
    }
    $data['next'] = $this->url('page/next');
    $data['page'] = $this->url('page/curent');

我的尝试是使用(\$data\['infos']\[] = array\(\n).*\n\t.*\n\t*\)\;,但它没有用,但是当我尝试(\$data\['infos']\[] = array\()时,只有这部分匹配

$data['infos'][] = array(

如何构建模式以仅匹配此部分

        $data['infos'][] = array(
            'title' => $special['title'],
            'text'  => $special['summary'],,
        );

我也很喜欢看到这么简单,所以我可以为其他类似的情况修改它。已经有一整天没有运气了,请帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果一个简单的模式就足够了,取决于你的输入的样子。

$re = '~\Q$data[\'infos\'][]\E.*?\);~s';
  • \Q ... \E用于字面匹配(也可以转义括号/美元)。
  • 单线模式下的
  • .*? s flag)匹配lazily任意数量的any character

See demo at regex101php demo at eval.in