2016-11-24 147 views
0

我是新來的豬。我需要提取catalina日誌,格式如下線。我需要我的程序使用一個模式,可以讀取從INFO開始的下一行,但它不這樣做。豬拉丁Regex_extract_All

A = LOAD 'catalina. USING TextLoader AS (line:chararray); 
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'^([a-zA-z]{3}\\s[0-9]{1,2},\\s[0-9]{4}\\s[0-9]{1,2}:[0-9]{2}:[0-9]{2}\\s[A-Z]{2})(.*)INFO:(.*)$')) 

STORE B IN 'output' ; 

輸入:

Nov 3, 2016 11:00:06 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 470 ms. 

回答

0

你的問題是兩個前和信息後,立即捕捉()。你想這個代替:

^([a-zA-z]{3}\s[0-9]{1,2},\s[0-9]{4}\s[0-9]{1,2}:[0-9]{2}:[0-9]{2}\s[A-Z]{2})\s([\w\.]+)\sINFO:\s(.*)$ 
+0

嗨,所有的 首先,豬拉丁不起作用只有一個反斜槓。經過我解決了這個問題^([A-ZA-Z] {3} \\ S [0 -9] {1,2},\\ S [0-9] {4} \\ S [0-9] {1,2}:[0-9] {2}:[0-9] {2 } \ s [(AZ){2})\ s([\\ w \\。] +)\ sINFO:\\ s(。*).it執行它,但沒有任何輸出。 –