Regex Pattern捕获分号分隔的数据库查询

时间:2012-06-19 19:37:50

标签: php regex pcre

我有一个执行数据库查询的脚本,我使用分号+新行(\n)将一个查询与另一个查询分开。见下文:

CREATE TABLE `moxedo`.`mox_config` (`;`, `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT , `group_id` INT(3) UNSIGNED NOT NULL , `is_enabled` INT(1) UNSIGNED NOT NULL , `tag` VARCHAR(255) NOT NULL , `name` VARCHAR(80) NOT NULL , `value` VARCHAR(255) NOT NULL , `description` TEXT NOT NULL , `init_params` TEXT NOT NULL , `datetime_added` DATETIME NOT NULL , `datetime_lastmodified` DATETIME NOT NULL , `timestamp_univ` BIGINT(14) NOT NULL , PRIMARY KEY ( `id` ) )
ENGINE = INNODB; 
ALTER TABLE `moxedo`.`mox_config` ADD UNIQUE `ix_u_tag_ge` ( `tag` );

我正在寻找一个可以帮助我捕获每个数据库查询的正则表达式模式。但是,我还需要在查询正文中容纳半冒号的出现,如上面的代码所示。

我很感激一些帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

你可以尝试一下:

(.*?;)(?!`)(?:\s|$)
  • (.*?;) - 匹配所有内容后跟分号......
  • (?!`) - ...后面没有单引号
  • (?:\s+|$) - 后跟空格字符或字符串结尾

如果有其他用例,分号可能出现在不同的位置,则正则表达式将需要相应更新。