- 论坛徽章:
- 0
|
有以下文本,我想匹配以# at 开头 第二行 #日期开头 第三行 SET 开头的第四行 ALTER |CREATE 开头,中间有可能有若干换行语句,最后以/*!*/; 结尾多行匹配
这是我写的 Python 正则表达式,但是只能匹配到 ALTER 或者 Create 那一行,下面的多个换行就匹配不到,求帮忙解决
re.compile(r'^# at.*\d*\n^#\d+.*\n^SET.*\n(?:^CREATE|^ALTER).*(?:\n^.*)?', re.I|re.M)
# at 19342
#170522 10:21:45 server id 1 end_log_pos 19679 CRC32 0x7e50a16d Query thread_id=76 exec_time=0 error_code=0
SET TIMESTAMP=1495419705/*!*/;
CREATE DEFINER=`root`@`%` PROCEDURE `p1`(num int(11))
BEGIN
DECLARE cn int(11) DEFAULT 1;
Start TRANSACTION;
while cn< num do
insert INTO t1 VALUES(cn,CONCAT('user',cn),CONCAT('job',@cn));
SET cn = cn +1;
END WHILE;
COMMIT;
END
/*!*/;
# at 1036578
#170522 10:26:35 server id 1 end_log_pos 1036821 CRC32 0x8a2701f9 Query thread_id=76 exec_time=0 error_code=0
SET TIMESTAMP=1495419995/*!*/;
CREATE TABLE user_info (
id INT (11) auto_increment PRIMARY KEY,
user_name VARCHAR (30) NOT NULL DEFAULT '',
create_time TIMESTAMP DEFAULT NOW()
) ENGINE = INNODB
/*!*/;
# at 1336192
#170522 10:31:45 server id 1 end_log_pos 1336324 CRC32 0x97d75f95 Query thread_id=76 exec_time=0 error_code=0
SET TIMESTAMP=1495420305/*!*/;
ALTER table t1 MODIFY jobs VARCHAR(20) NOT NUll DEFAULT ''
/*!*/;
# at 1336324
#170522 10:32:18 server id 1 end_log_pos 1336396 CRC32 0x1cbdc09e Query thread_id=76 exec_time=0 error_code=0
SET TIMESTAMP=1495420338/*!*/;
BEGIN
/*!*/;
|
|