Я хочу проанализировать журнал MySQL, используя регулярные выражения в Python. Но результат не выходит, и там нет ошибки. Я хочу получить отметку времени и только запрос SELECT. Вот пример журнала:
190410 7:55:29 32168488 Connect cis_production@172.21.7.4 on cis_production
32168488 Query SET NAMES 'utf8'
32168488 Query SHOW FULL COLUMNS FROM `sysx_user`
32168488 Query SELECT *
FROM information_schema.referential_constraints AS rc
JOIN information_schema.key_column_usage AS kcu ON
kcu.constraint_schema = rc.constraint_schema AND
kcu.constraint_name = rc.constraint_name
WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
AND rc.table_name = 'sysx_user' AND kcu.table_name = 'sysx_user'
32168488 Query SELECT * FROM `dimx_dim` WHERE user_id = 3060
Вот регулярное выражение, которое я уже пробовал:
regex = re.compile(r'(\d{6}) (\d{2}:\d{2}:\d{2} [0-9]{8}) (.*?)(?=\d{8} \d{2}:\d{2}:\d{2} [0-9]{8} |$)', re.MULTILINE|re.DOTALL)
Я ожидаю получить только журнал SELECT. Не весь журнал. Это ожидаемый результат:
[("190410 7:55:29 32168488 Connect cis_production@172.21.7.4 on",
"SELECT *FROM information_schema.referential_constraints AS rc JOIN
information_schema.key_column_usage AS kcu ON kcu.constraint_schema =
rc.constraint_schema AND kcu.constraint_name = rc.constraint_name WHERE
rc.constraint_schema = database() AND kcu.table_schema = database() AND
rc.table_name = 'sysx_user' AND kcu.table_name = 'sysx_user'",
" SELECT * FROM `dimx_dim` WHERE user_id = 3060")]
Пожалуйста, помогите мне. Спасибо.