Анализ журнала в Свинья
У меня есть файл.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) *)
Спасибо за ответы