我有一个不同表的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)*--
..没有工作。
答案 0 :(得分:1)
您需要使用除mysqli_*
之外的任何字符的正则表达式。为此,您可以:
mysql_*
修改强>
--
是对字符串CREATE TABLE (?:(?!--).)*
进行否定前瞻。此字符串的任何内容都不会与此表达式匹配。
你可以通过这个链接查看和测试它(这是很好的解释和一个好工具):