Как написать регулярное выражение для извлечения строк из нижнего стека
Я новичок в регулярном выражении и хочу извлечь строки из нижнего стека.Ниже приведены правила
- После исключения извлеките первую строку, начинающуюся с 'at'
- Получите первую строку, начинающуюся с com.test (эта строка необязательна, может или не можетприсутствовать во всем файле)
- Получить строку, начинающуюся с com.test и не похожую на шаг 2 com.Пакет тестовой строки (Эта строка необязательно может присутствовать или не присутствовать во всем файле)
Частично опробовано с прогнозом, но безрезультатно.
(Exception).*[\n\r]*.*at\s+(((?<pack>.*)(.*\.(?<packfunc>.*\..*)\())).*((?<Offset>:\d+))\)(((?=(\n.*)*at\s+((?<pack1>(com.test.*))(.*\.(?<packfunc1>(.*\..*)))[\(]).*(?<ffset1>:\d+)\))|))
Ввод
IllegalArgumentException
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at com.test.package1.user1.client1.client1.Call.invoke(Call.java:90)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at com.test.package1.user1.client1.client1.Call.invoke(SrvCall.java:84)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at java.security.AccessController.doPrivileged(Native Method)
at com.test.package2.user2.client2.client2.Call.invoke(Call.java:90)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
Ожидаемый результат 1.org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.Java: 584)
2.com.test.package1.user.client.client1.Call.invoke (Call.java:90)
3.com.test.package2.user2.client2.client2.Call.invoke (Call.java:90)