0

我有一个 .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的下一行中使用行。我也需要捕捉这条线。

4

2 回答 2

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]*,因为后者消耗了新行。

于 2017-06-27T06:58:54.767 回答
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)*)

谢谢你的回复

于 2017-06-27T11:23:02.437 回答