In this article, we are going to see how can we extract information from a Exception/Trace messages using Regular Expression.
This is regular basis need, spatially when you are analyzing a trace message that you found after an automated test process or unit test.
For basic idea about regular expression, see this old post.
Java Exception Format
When analyzing a trace message, we have to retrieve information from a single trace message from trace stack. A sample example (android trace message)
In here, the format of the trace is packageName.className.methodName(FileName:lineNumber)
Retrieve with analysis
So, by construction all type of names that are used in java are made of alphabets, so the expression of every name will be
[a-zA-Z]+.(any character, single of multiple which are under rage of a-z, A-Z)
Every line number may have single character to 4/5 character(if we write very long class). So , for line number the expression will be
\d+(any digit more than 1 time)
Now, let’s look at the message:
- it begins with
- and have a space then the original message.
- And in the end it closes with
And after every name there is a Character(dot character or braces) .
So if we add those conditions together, we get these
Now we group our necessary items that we need to get from the expression. As we want package name, class name, method name, file name, line number:
If we do not want package name and class name , we just omit the braces: