REGEX:在sql dump中获取创建表查询

时间:2015-06-11 04:25:28

标签: regex

我有一个不同表的sql转储,每个表都有不同的字段数量,我想在每个字段之后插入一个查询,所以我试图找到一个可以检索的正则表达式:

CREATE TABLE  cms_audit (
aud_id bigint NOT NULL IDENTITY(1,1),
  user_id int DEFAULT NULL,
  client_id int NOT NULL,
  aud_event varchar(500) NOT NULL,
  aud_type varchar(150) NOT NULL,
  aud_string varchar(1000) DEFAULT NULL,
  aud_date datetime DEFAULT NULL
) 
-- --------------------------------------------------------

我的正则表达式是CREATE TABLE .*--(在记事本++中,我已经检查了说出“匹配换行符”的方框),这意味着以"创建表&#34为开头;以及随后的任何事情,直到你到达" - "。 但是,此语句检索整个文件而不是获取每个"创建表"单独查询,我错过了什么?。

我也试过CREATE TABLE (.*|\n)*-- ..没有工作。

1 个答案:

答案 0 :(得分:1)

您需要使用除mysqli_*之外的任何字符的正则表达式。为此,您可以:

mysql_*

修改

--是对字符串CREATE TABLE (?:(?!--).)*进行否定前瞻。此字符串的任何内容都不会与此表达式匹配。

你可以通过这个链接查看和测试它(这是很好的解释和一个好工具):

https://regex101.com/r/mR9fD4/1