Анализ журнала в Свинья

У меня есть файл.txt, который выглядит так:

2017-06-22 23:19:05,758 use database stocks
2017-06-22 23:21:27,056 CREATE TABLE stocksdata ( stock_exchange string,

stock_symbol string, date TIMESTAMP,

Регулярное выражение, которое я написал ^(\\d{4}-\\d{2}-\\d{2})\\s+(\\d{2}:\\d{2}:\\d{2}),(\\d{3})\\s((?i)(create|select|use).*)$,

Но мой вывод

2017-06-22 23:19:05,758 use database stocks
2017-06-22 23:21:27,056 CREATE TABLE stocksdata ( stock_exchange string,

Это не занимает строки в следующей строке ввода, то есть stock_symbol строка, дата TIMESTAMP,. Мне нужно захватить эту линию, а также.

2 ответа

Попробуйте использовать следующий шаблон:

^(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2}),(\d{3})\s((?i)(create|select|use)[\s\S]*)$

Я заменил .* в конце с [\s\S]*потому что последний потребляет новые строки.

Наконец, это выражение сработало

(\d{4}-\d{2}-\d{2})\ S +(\d{2}:\ д {2}: \ д {2}),(\ д {3})\ ы (\ w {4}) \ s (.) (() (создать \s| выбрать \s| использовать \ s).(.\ s \ S? \ D.\ s \ D) *)

Спасибо за ответы

Другие вопросы по тегам