0

データベースクエリを実行するスクリプトがあり、セミコロンと改行(\n)を使用して1つのクエリを別のクエリから分離しています。下記参照:

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 に答える