我有一个.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,。我也需要捕捉这一行。
答案 0 :(得分:0)
尝试使用以下模式:
^(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2}),(\d{3})\s((?i)(create|select|use)[\s\S]*)$
我最后用.*
替换了[\s\S]*
,因为后者消耗了新的行。
答案 1 :(得分:0)
最后,这个表达式已经解决了
(适用\ d {4} - \ d {2} - \ d {2})\ S +(\ d {2}:\ d {2}:\ d {2}),(\ d {3})\ S(\ W {4})\ S()(()(创建\ S |选择\ S |使用\ S)。( \ S \。 S'\ d。 \ S \ d)*)强>
感谢您的回复