import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^Traceback\n"
+ "[\\s\\S]+?\n"
+ "(?=^\\[|\\Z)";
final String string = "Started by upstream project \"run_script\" build number 435\n"
+ "originally caused by:\n"
+ " Started by user test\n"
+ "[Pipeline] {\n"
+ "[Pipeline] stage (Svnup)\n"
+ "Entering stage Svnup\n"
+ "+ python -m test.cli install 479CI9SOZ android://0.0.0.0:10000/479CI9SOZ /root/workspace/group/apk/com.data.app.apk - - false false\n"
+ "[03:21:33][DEBUG]<android> /root/env/common/test/test/core/android/adb/linux/adb -H 0.0.0.0 -P 10000 -s 479CI9SOZ wait-for-device\n"
+ "Traceback (most recent call last):\n"
+ " File \"/usr/lib/python2.7/runpy.py\", line 174, in _run_module_as_main\n"
+ " \"__main__\", fname, loader, pkg_name)\n"
+ " File \"/usr/lib/python2.7/runpy.py\", line 72, in _run_code\n"
+ " exec code in run_globals\n"
+ " File \"/root/env/common/test/test/cli/parser.py\", line 55, in main\n"
+ " run_script(args)\n"
+ " File \"/root/env/common/test/test/core/helper.py\", line 224, in wrapper\n"
+ " return f(pictarget, *args[1:], **opargs)\n"
+ " File \"/root/env/common/test/test/core/main.py\", line 408, in assert_exists\n"
+ " raise AssertionTimeout(\"%s does not exist in screen\" % v)\n"
+ "AssertionTimeout: MoaPic(group_login.owl/tpl1487844291185.png) does not exist in screen\n"
+ "EndOfStream\n"
+ "[03:23:18][DEBUG]<android> /root/env/common/test/test/core/android/adb/linux/adb -H 0.0.0.0 -P 10000 -s 479CI9SOZ forward --remove tcp:12671\n"
+ "+ python -m test.cli run 479CI9SOZ android://0.0.0.0:10000/479CI9SOZ /root/workspace/group/util/scripts/group_login.owl \n"
+ "rpc_uri: http://0.0.0.0:12708/jsonrpc/0\n"
+ "rpc_uri: http://0.0.0.0:12708/jsonrpc/0\n"
+ "Traceback (most recent call last):\n"
+ " File \"/usr/lib/python2.7/runpy.py\", line 174, in _run_module_as_main\n"
+ " \"__main__\", fname, loader, pkg_name)\n"
+ " File \"/usr/lib/python2.7/runpy.py\", line 72, in _run_code\n"
+ " exec code in run_globals\n"
+ " File \"/root/env/common/test/test/__main__.py\", line 5, in <module>\n"
+ " main()\n"
+ " File \"/root/env/common/test/test/cli/parser.py\", line 55, in main\n"
+ " run_script(args)\n"
+ " File \"/root/env/common/test/test/cli/runner.py\", line 124, in run_script\n"
+ " exec_script(args.script, scope=globals(), root=True)\n"
+ " File \"/root/env/common/test/test/cli/runner.py\", line 186, in exec_script\n"
+ " exec(compile(code, scriptpath, 'exec')) in scope\n"
+ " File \"/root/env/common/mator/mator/mator.py\", line 520, in start\n"
+ " raise IOError(\"RPC server not started!\")\n"
+ "IOError: RPC server not started!\n"
+ "[03:24:40][DEBUG]<android> /root/env/common/test/test/core/android/adb/linux/adb -H 0.0.0.0 -P 10000 -s 479CI9SOZ forward --remove tcp:12708\n"
+ "[03:26:41][DEBUG]<main> ->sift result: None\n"
+ "[03:26:41][DEBUG]<main> match result: None\n"
+ "Traceback (most recent call last):\n"
+ " File \"/usr/lib/python2.7/runpy.py\", line 174, in _run_module_as_main\n"
+ " \"__main__\", fname, loader, pkg_name)\n"
+ " File \"/usr/lib/python2.7/runpy.py\", line 72, in _run_code\n"
+ " exec code in run_globals\n"
+ " File \"/root/env/common/test/test/core/main.py\", line 195, in touch\n"
+ " pos = loop_find(v, timeout=timeout)\n"
+ " File \"/root/env/common/test/test/core/utils/logwraper.py\", line 70, in wrapper\n"
+ " res = f(*args, **kwargs)\n"
+ " File \"/root/env/common/test/test/core/cv.py\", line 83, in loop_find\n"
+ " raise NotFoundException('Picture %s not found in screen' % query)\n"
+ "test.core.error.NotFoundException: 'Picture MoaPic(group_login.owl/tpl1482311722698.png) not found in screen'\n"
+ "+ python -m test.cli stop_screen_record android://0.0.0.0:10000/479CI9SOZ 479CI9SOZ.mp4\n"
+ "ERROR: script returned exit code 1\n"
+ "Finished: FAILURE";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.COMMENTS);
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