Java 列出两个正则表达式函数之间的文本
大家好我想在两个正则表达式函数之间得到一个文本我的日志文件是Java 列出两个正则表达式函数之间的文本,java,regex,Java,Regex,大家好我想在两个正则表达式函数之间得到一个文本我的日志文件是 11:40:04,202 [ERROR] JobStoreTX - Failed to close Connection java.sql.SQLException: Already closed. at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114) at org.apache.commons.dbcp.Po
11:40:04,202 [ERROR] JobStoreTX - Failed to close Connection
java.sql.SQLException: Already closed.
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.closeConnection(JobStoreSupport.java:3579)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.cleanupConnection(JobStoreSupport.java:3555)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3783)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2728)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:264)
11:40:04,202 [ERROR] QuartzSchedulerThread - quartzSchedulerThreadLoop: RuntimeException null
java.lang.reflect.UndeclaredThrowableException
at $Proxy1.rollback(Unknown Source)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.rollbackConnection(JobStoreSupport.java:3604)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3773)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2728)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:264)
Caused by:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:600)
at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:71)
... 5 more
Caused by:
java.sql.SQLException: Closed Connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1132)
at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:368)
at `enter code here`org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.rollback(PoolingDataSource.java:323)
... 10 more
11:41:47,203 [ERROR] JobStoreTX - Failed to close Connection
我想要两个时间戳之间的文本,即11:40:04202和11:40:04202,其中应包含此
11:40:04,202 [ERROR] JobStoreTX - Failed to close Connection
java.sql.SQLException: Already closed.
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.closeConnection(JobStoreSupport.java:3579)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.cleanupConnection(JobStoreSupport.java:3555)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3783)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobStoreSupport.java:2728)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:264)
让我把它变得更简单
static String str1 = "09:37:58,289 This is my small 09:39:18,129 example string which I'm going" +
" to use for pattern matching 09:38:15,835 This is my small example string which" +
" I'm going to use for pattern matching";
String patrn = "((\\d+):(\\d+):(\\d+),(\\d+))";
Pattern p = Pattern.compile(patrn);
Matcher m = p.matcher(str1);
/*while(m.find())
{
for(int i=1;i<m.groupCount();i++)
{
System.out.println(i);
System.out.println(m.group(i));
start = m.start();
System.out.println(start);
end = m.end();
System.out.println(end);
i+=3;
}
}*/
The output which i needed is.....
String1 = 09:37:58,289 This is my small
String2 = 09:39:18,129 example string which I'm going to use for pattern matching
String3 = 09:38:15,835 This is my small example string which I'm going to use for pattern matching
static String str1=“09:37:58289这是我要介绍的09:39:18129示例字符串”+
“用于模式匹配09:38:15835这是我的小示例字符串,它”+
“我将用于模式匹配”;
字符串patrn=“(\\d+):(\\d+):(\\d+),(\\d+)”;
Pattern p=Pattern.compile(patrn);
匹配器m=p.Matcher(str1);
/*while(m.find())
{
对于(int i=1;i)如果您只想打印STACKTROPE而不是日期和日志级别,那么您可以考虑创建自己的模式。< /P>
Java Doc for是否试图提取错误消息?您的意思是说,“在两个函数调用之间记录的日志文件中列出文本”@Dibya是的…需要使用regex@Sumeet你能解释一下你想做什么吗?你可以考虑更改Log4jType。@ DyBya我有一个服务器日志文件(文本文件)我想把它打断到你可以说我上面显示的部分日志文件的快照,我想把它打断到输出,如我所示。。。