我需要构建一个匹配多行代码的模式
$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'],,
);
我也很喜欢看到这么简单,所以我可以为其他类似的情况修改它。已经有一整天没有运气了,请帮助我。
提前致谢。
答案 0 :(得分:1)
如果一个简单的模式就足够了,取决于你的输入的样子。
$re = '~\Q$data[\'infos\'][]\E.*?\);~s';
\Q
... \E
用于字面匹配(也可以转义括号/美元)。.*?
s
flag)匹配lazily任意数量的any character。