2016-11-24 9 views
0

Ich bin neu zu Schwein. Ich muss catalina Protokoll extrahieren und das Format ist wie unter line.Ich brauche mein Programm, ein Muster zu verwenden, die nächste Zeile lesen kann, die von INFO beginnt, aber es tut das nicht .Schwein Latein 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' ; 

Eingang:

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

Antwort

0

Ihr Problem ist, die zwei fängt unmittelbar vor und nach INFO (.). Sie wollen, dass diese statt:

^([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

Hallo, Zunächst einmal lateinisch das Schwein nicht nur einen Backslash .after ich diesen^fixiert funktioniert ([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 hat es ausgeführt, aber es hat keine Ausgabe gemacht. –