2016-11-24 3 views
0

Я новичок в свинге. Мне нужно извлечь журнал каталогов, и формат похож на строку ниже. Мне нужна моя программа, чтобы использовать шаблон, который может читать следующую строку, которая начинается с INFO, но она не делает этого ,Pig latin 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

Ваша проблема заключается в два захватывает непосредственно до и после INFO (.). Вы хотите вместо этого:

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

Привет, Прежде всего, свинья латинская не работает только один обратный слеш .after я исправил^([A-Za-Z] {3} \\ s [0 -9] {1,2}, \\ с [0-9] {4} \\ с [0-9] {1,2}: [0-9] {2}: [0-9] {2 } \\ s [AZ] {2}) \ s ([\\ w \\.] +) \ sINFO: \\ s (. *) .it выполнил его, но не сделал никакого вывода. –