我正在尝试从文件中查找CREATE SQL查询,以简化我在每个查询结束时编写的#end
任务,但搜索仍在继续,我在一个数组中得到了一些结果索引(或简称文件的延续),而不是一个。
preg_match_all('/CREATE.*#end/su', $sql, $queries);
SQL示例:
CREATE TABLE `tblname` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`label` varchar(32) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `label` (`label`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8#end
答案 0 :(得分:2)
默认情况下,问题可能是*
贪婪。这意味着它可以找到最长匹配,而不是最短。不加考虑:.*?
,现在它会在找到一个匹配后立即停止匹配。