Javascript 从日志文件中提取正则表达式直到序列
我有下面的日志文件,我需要使用regex定义日志格式,以便可以使用它提取日志条目Javascript 从日志文件中提取正则表达式直到序列,javascript,java,regex,logging,Javascript,Java,Regex,Logging,我有下面的日志文件,我需要使用regex定义日志格式,以便可以使用它提取日志条目 _20131005_022047874 ALEPO@ALEPO3 **Exception ServiceConnection / createService methord javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://212.118.158.21:8080/tunnel-web/axis/Portlet_ase_Fun
_20131005_022047874 ALEPO@ALEPO3 **Exception ServiceConnection / createService methord javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://212.118.158.21:8080/tunnel-web/axis/Portlet_ase_FunctionalDomainService?wsdl. It failed with:
Connection refused.
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:151)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:133)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:254)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:217)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:165)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:93)
at javax.xml.ws.Service.<init>(Service.java:56)
at javax.xml.ws.Service.create(Service.java:680)
at com.stc.alepo.client.ServiceConnection.createService(ServiceConnection.java:75)
at com.stc.alepo.client.WSSoapHandler.<init>(WSSoapHandler.java:73)
at com.stc.alepo.client.WSProcessManager.<init>(WSProcessManager.java:114)
at com.stc.alepo.client.IcmsAlepoRealTime.start(IcmsAlepoRealTime.java:439)
at com.stc.alepo.client.IcmsAlepoRealTime.main(IcmsAlepoRealTime.java:97)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at java.net.URL.openStream(URL.java:1010)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:793)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:251)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:118)
... 11 more
_20131005_022047874 ALEPO@ALEPO3 **Exception DCPSoapHandler / constructor methord [Ljava.lang.StackTraceElement;@25b65b7f
_20131005_022047875 ALEPO@ALEPO3 WS17249866 **Exception DCPSoapHandler / invokeSOAPMessage methord java.lang.NullPointerException
at com.stc.alepo.client.WSSoapHandler.invokeSOAPMessage(WSSoapHandler.java:110)
at com.stc.alepo.client.WSProcessManager.getWSReply(WSProcessManager.java:174)
at com.stc.alepo.client.IcmsAlepoRealTime.start(IcmsAlepoRealTime.java:441)
at com.stc.alepo.client.IcmsAlepoRealTime.main(IcmsAlepoRealTime.java:97)
如何匹配第二个组以提取所有字符,直到第一个组再次出现,或者执行此用例的最佳实践是什么。我有很多日志,我需要以同样的方式定义第二个组,因为时间戳格式可能会随日志而改变
提前感谢。您可以使用一个正则表达式,将时间戳捕获到1组中,并将其后所有不以时间戳模式开头的行捕获到2组中:
/^(_\d{1,8}_\w+)\s*(.*(?:\r?\n(?!_\d{1,8}_\w+).*)*)/gm
看
详细信息:
-行的开头^
(
-第1组(时间戳):{1,8}\uw+)
,1到8位,
和1+字字符
-0+空格\s*
-第2组(所有时间戳之前):(.*(:\r?\n(?!\d{1,8}\uw+).*)
-除换行符以外的任何0+字符*
-0+序列:(?:\r?\n(?!\d{1,8}\u\w+。*)
-未跟在时间戳模式后面的换行符\r?\n(?)\ud{1,8}\uw+
-除换行符以外的任何0+字符*
/^(_\d{1,8}_\w+)\s*(.*(?:\r?\n(?!_\d{1,8}_\w+).*)*)/gm
看
详细信息:
-行的开头^
(
-第1组(时间戳):{1,8}\uw+)
,1到8位,
和1+字字符
-0+空格\s*
-第2组(所有时间戳之前):(.*(:\r?\n(?!\d{1,8}\uw+).*)
-除换行符以外的任何0+字符*
-0+序列:(?:\r?\n(?!\d{1,8}\u\w+。*)
-未跟在时间戳模式后面的换行符\r?\n(?)\ud{1,8}\uw+
-除换行符以外的任何0+字符*