import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?<time>\\w{3} \\d{2}, \\d{4} \\d{2}:\\d{2}:\\d{2} \\w[AM|PM]) (?<thread>.*)";
final String string = "2013-3-03 14:27:33 [main] INFO Main - Start\n"
+ "2013-3-03 14:27:33 [main] ERROR Main - Exception\n"
+ "javax.management.RuntimeErrorException: null\n"
+ " at Main.main(Main.java:16) ~[bin/:na]\n"
+ "2013-3-03 14:27:33 [main] INFO Main - End\n\n"
+ "Feb 06, 2019 10:46:27 AM hudson.model.ParametersAction filter\n"
+ "WARNING: Skipped parameter `STABLE_RELEASE` as it is undefined on `AUTOMATEDTEST/ENT/atb-ent-api-etransfersenderprofile-automation_qa`. Set `-Dhudson.model.ParametersAction.keepUndefinedPara\n"
+ "meters=true` to allow undefined parameters to be injected as environment variables or `-Dhudson.model.ParametersAction.safeParameters=[comma-separated list]` to whitelist specific parameter \n"
+ "names, even though it represents a security breach or `-Dhudson.model.ParametersAction.keepUndefinedParameters=false` to no longer show this message.\n\n\n"
+ "Feb 06, 2019 11:28:46 AM org.eclipse.jetty.server.handler.ContextHandler$Context log\n"
+ "WARNING: Error while serving https://jenkins-master.pipeline.atb.com/securityRealm/finishLogin\n"
+ "java.lang.reflect.InvocationTargetException\n"
+ " at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:347)\n"
+ " at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77)\n"
+ " at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)\n"
+ " at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)\n"
+ " at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)\n"
+ " at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)\n"
+ " at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)\n"
+ " at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)\n"
+ " at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)\n"
+ " at org.kohsuke.stapler.MetaClass$3.doDispatch(MetaClass.java:209)\n"
+ " at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)\n"
+ " at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)\n"
+ " at org.kohsuke.stapler.Stapler.invoke(Stapler.java:864)\n"
+ " at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)\n"
+ " at org.kohsuke.stapler.Stapler.service(Stapler.java:238)\n"
+ " at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\n"
+ " at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)\n"
+ " at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)\n"
+ " at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243)\n"
+ " at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)\n"
+ " at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)\n"
+ " at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)\n"
+ " at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)\n"
+ " at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)\n"
+ " at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)\n"
+ " at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)\n"
+ " at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)\n"
+ " at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:114)\n"
+ " at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)\n"
+ " at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)\n"
+ " at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)\n"
+ " at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)\n"
+ " at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)\n"
+ " at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)\n"
+ " at org.jenkinsci.plugins.saml.SamlCrumbExclusion.process(SamlCrumbExclusion.java:26)\n"
+ " at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:73)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)\n"
+ " at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n"
+ " at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n"
+ " at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n"
+ " at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n"
+ " at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n"
+ " at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n"
+ " at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)\n"
+ " at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)\n"
+ " at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n"
+ " at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)\n"
+ " at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)\n"
+ " at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)\n"
+ " at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)\n"
+ " at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)\n"
+ " at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)\n"
+ " at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)\n"
+ " at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)\n"
+ " at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)\n"
+ " at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)\n"
+ " at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)\n"
+ " at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)\n"
+ " at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)\n"
+ " at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)\n"
+ " at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)\n"
+ " at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)\n"
+ " at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)\n"
+ " at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)\n"
+ " at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)\n"
+ " at org.eclipse.jetty.server.Server.handle(Server.java:531)\n"
+ " at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)\n"
+ " at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)\n"
+ " at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)\n"
+ " at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)\n"
+ " at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)\n"
+ " at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)\n"
+ " at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)\n"
+ " at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)\n"
+ " at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)\n"
+ " at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)\n"
+ " at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)\n"
+ " at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)\n"
+ " at java.lang.Thread.run(Thread.java:748)\n"
+ "Caused by: org.acegisecurity.BadCredentialsException: Response issue instant is too old or in the future; nested exception is org.pac4j.saml.exceptions.SAMLException: Response issue instant is too old or in the future\n"
+ " at org.jenkinsci.plugins.saml.SamlProfileWrapper.process(SamlProfileWrapper.java:59)\n"
+ " at org.jenkinsci.plugins.saml.SamlProfileWrapper.process(SamlProfileWrapper.java:35)\n"
+ " at org.jenkinsci.plugins.saml.OpenSAMLWrapper.get(OpenSAMLWrapper.java:64)\n"
+ " at org.jenkinsci.plugins.saml.SamlSecurityRealm.doFinishLogin(SamlSecurityRealm.java:304)\n"
+ " at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n"
+ " at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)\n"
+ " ... 92 more\n"
+ "Caused by: org.pac4j.saml.exceptions.SAMLException: Response issue instant is too old or in the future\n"
+ " at org.pac4j.saml.sso.impl.SAML2DefaultResponseValidator.validateSamlProtocolResponse(SAML2DefaultResponseValidator.java:218)\n"
+ " at org.pac4j.saml.sso.impl.SAML2DefaultResponseValidator.validate(SAML2DefaultResponseValidator.java:132)\n"
+ " at org.pac4j.saml.sso.impl.SAML2WebSSOMessageReceiver.receiveMessage(SAML2WebSSOMessageReceiver.java:77)\n"
+ " at org.pac4j.saml.sso.impl.SAML2WebSSOProfileHandler.receive(SAML2WebSSOProfileHandler.java:35)\n"
+ " at org.pac4j.saml.client.SAML2Client.retrieveCredentials(SAML2Client.java:225)\n"
+ " at org.pac4j.saml.client.SAML2Client.retrieveCredentials(SAML2Client.java:60)\n"
+ " at org.pac4j.core.client.IndirectClient.getCredentials(IndirectClient.java:106)\n"
+ " at org.jenkinsci.plugins.saml.SamlProfileWrapper.process(SamlProfileWrapper.java:55)\n"
+ " ... 97 more\n\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html