0

我有一个执行数据库查询的脚本,我使用分号 + 换行符 ( \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` );

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

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

4

1 回答 1

1

你可以试试这个:

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

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

于 2012-06-19T20:00:57.107 回答