re = /^(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+) \[(?<loglevel>\w)\] (?<message>.*)/m
str = '2020-04-30 08:26:09.379 [I] DOPiX de.icongmbh.dope.gui.web.DopeWebGui 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (""): (:)
### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df setStatus mit Status: (I:kernel#0)
2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.DopeWebGui 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (""): (:)
### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df creating status gui object for stepper
2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.DopeWebGui 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (""): (:)
### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df transfer object for status set created!
2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.queue.OutputQueue 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (""): (:)
### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df +++++ adding request to queue:
##### Transfer Object Output
StatusID: 0(OK)
SourceID: 3(GUI/Poll result)
FunctionID/SubFunctionID: 10/-1
(SetStatus)
RequestAgainHint false
SessionID null
TypTransferObject class de.icongmbh.dope.gui.web.DOPEGuiStatus
ArrayTransferObjects null
##### Transfer Object Output Ends
2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.queue.OutputQueue 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (""): (:)
### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df Added request to queue, request list size: 7 (0|3|201|-1 / 0|3|19|-1 / 0|3|7|0 / 0|3|5000|-1 / 0|3|19|-1 / 0|3|20|1 / 0|3|10|-1 / )
'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html