Home > Net >  How to write regex for an endpoint?
How to write regex for an endpoint?

Time:11-27

I am writing a regex for this test string,

2021-11-25 17:04:48,015 INFO  [wso2/gateway/src/gateway/utils] - [BlockingConditionRetrievalTask] [-] Blocking condition retrieval successful. Stopping the timer task ...

here is the regex i got so far,

^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])* (?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d),\d{3} {1,2}(?<loglevel>[DEBUG\ INFO\ ERROR\ WARN][A-Z]*)\s 

how to write the regex for the [wso2/gateway/src/gateway/utils] which is an endpoint and the [BlockingConditionRetrievalTask]

Regards.

CodePudding user response:

You can use

^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d \s (?<loglevel>[A-Z] )\s \[(?<logendpoint>[^\]\[]*)]\s \S \s \[(?<logtask>[^\]\[]*)]

See the regex demo. Details:

  • ^ - start of string
  • \d{4}-\d{2}-\d{2} - date-like pattern
  • \s - a whitespace
  • \d{2}:\d{2}:\d{2},\d - time-like pattern
  • \s - one or more whitespaces
  • (?<loglevel>[A-Z] ) - Group "loglevel": one or more uppercase letters
  • \s - one or more whitespaces
  • \[ - a [ char
  • (?<logendpoint>[^\]\[]*) - Group "logendpoint": any zero or more chars other than ] and [
  • ]\s \S \s \[ - ], one or more non-whitespaces enclosed with one or more whitespaces, and a [ char
  • (?<logtask>[^\]\[]*) - Group "logtask": any zero or more chars other than ] and [
  • ] - a ] char.
  • Related