import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\.java:\\d+\\)([\\r\\n]+)\\s\\S+";
final String string = "Total threads: 434 on 2018-04-29T17-00-03+0800\n"
+ " \n"
+ " Name CPU Time (ms) User Time (ms) Id State\n"
+ " IPC Parameter Sending Thread #868 0 0 17782 TIMED_WAITING\n"
+ " waiting on java.util.concurrent.SynchronousQueue$TransferStack@4d974d1c at sun.misc.Unsafe.park(Native Method)\n"
+ " at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\n"
+ " at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)\n"
+ " at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)\n"
+ " at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)\n"
+ " at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066)\n"
+ " at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)\n"
+ " at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n"
+ " at java.lang.Thread.run(Thread.java:745)\n"
+ " IPC Client (2006835220) connection to abcd.com/10.21.216.71:8020 from hdfs 0 0 17781 TIMED_WAITING\n"
+ " waiting on org.apache.hadoop.ipc.Client$Connection@5be22c7a at java.lang.Object.wait(Native Method)\n"
+ " at org.apache.hadoop.ipc.Client$Connection.waitForWork(Client.java:931)\n"
+ " at org.apache.hadoop.ipc.Client$Connection.run(Client.java:976)\n"
+ " 1306724746@qtp-695248316-10273 29 10 17780 TIMED_WAITING\n"
+ " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@4de3098a at java.lang.Object.wait(Native Method)\n"
+ " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n"
+ " 2125946201@qtp-695248316-10271 40 20 17776 TIMED_WAITING\n"
+ " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@7eb75d59 at java.lang.Object.wait(Native Method)\n"
+ " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n"
+ " 1805988475@qtp-695248316-10269 133 70 17772 TIMED_WAITING\n"
+ " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@6ba5327b at java.lang.Object.wait(Native Method)\n"
+ " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n"
+ " 402769840@qtp-695248316-10266 161 90 17766 TIMED_WAITING\n"
+ " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@1801c7b0 at java.lang.Object.wait(Native Method)\n"
+ " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n"
+ " FastExecutor-3-60 1 0 17747 WAITING\n"
+ " waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@476f266c at sun.misc.Unsafe.park(Native Method)\n"
+ " at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\n"
+ " at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\n"
+ " at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\n"
+ " at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)\n"
+ " at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)\n"
+ " at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n"
+ " at com.xyz.shadow.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)\n"
+ " at java.lang.Thread.run(Thread.java:745)";
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