java - regular expressions with words in different lines -


i have following string:

>stat f -------------- begin of statistic  3 (f) activate context request tim eouts                       :             0 attach timeouts             :             0 deactivate context request t imeouts                     :             0 detach timeouts             :             0 gmm_attach accepts          :             0 gmm_attach completes        :             0 gmm_attach congestions      :             0 gmm_attach rejects          :             0 gmm_attach requests         :             0 gmm_authentication failures :             0 gmm_authentication requests :             0 gmm_authentication responses:             0 gmm_detach requests         :             0 gmm_detach responses        :             0 gmm_id requests             :             0 gmm_id responses            :             0 gmm_protocol error unspecifi ed                          :             0 #more here key:value pairs --------------  end  of statistic  3 < stat exec'd 

i want extract key value pairs string. have created "ugly"-looking regular expression:

(^\w+\s*\w*\s*\w*\s*\w*\s*\w*\s*\w*\s*\w*\s*:\s*\d+) 

it checks words , whitespaces etc, , works. more pretty way like: me lines don't start >stat f or - , don't start <. tried this

(^[^><-].*) 

but when key extends in 2 lines, matches them 2 different things. 1 match

 activate context request tim 

and 1

 eouts                       :             0 

is there way bypass behavior?

you can use following regex:

^([^>-][^:]*)\s*:\s*([^:\n]+) 

as java string:

 string pattern = "(?m)^([^>-][^:]*)\\s*:\\s*([^:\\n]+)"; 

see demo

[^>-] makes sure not capture line starting > or -. capturing multiline names due [^:] pattern.

a negated character class [^:] means any character (even newline symbol) not :. since : acts delimiter, can match before it, , after that. adding \n 2nd negated character class matching values (e.g. 0s) make sure stop @ newline, next line might start key name.

output:

enter image description here


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -