import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "at .*\\.(\\w*) \\(.*js\\/(\\w*)\\/(?!logger)(\\w*)\\..{2,4}:(\\d*:\\d*)\\)";
final String string = "Error\n"
+ " at getCallerTag (http://localhost:4577/js/base/logger.js:31:17)\n"
+ " at Object.logIt (http://localhost:4577/js/base/logger.js:25:18)\n"
+ " at Object.debug (http://localhost:4577/js/base/logger.js:11:12)\n"
+ " at HTMLInputElement.updateFileNames (http://localhost:4577/js/modules/pdf.js:12:11)\n"
+ " at HTMLInputElement.n.event.dispatch (http://localhost:4577/vendor/js/jquery-2.2.3.min.js:3:7537)\n"
+ " at HTMLInputElement.r.handle (http://localhost:4577/vendor/js/jquery-2.2.3.min.js:3:5620)\n\n"
+ "> match[1] = 'updateFileNames', match[2] = 'modules', match[3] = 'pdf', match[4] = '12:11'\n\n"
+ "Error\n"
+ " at getCallerTag (http://localhost:4577/js/base/logger.js:31:17)\n"
+ " at Object.logIt (http://localhost:4577/js/base/logger.js:25:18)\n"
+ " at Object.debug (http://localhost:4577/js/base/logger.js:11:12)\n"
+ " at Object.Foo (http://localhost:4577/js/base/components.js:75:21)\n"
+ " at HTMLInputElement.n.event.dispatch (http://localhost:4577/vendor/js/jquery-2.2.3.min.js:3:7537)\n"
+ " at HTMLInputElement.r.handle (http://localhost:4577/vendor/js/jquery-2.2.3.min.js:3:5620)\n\n"
+ "> match[1] = 'Foo', match[2] = 'base', match[3] = 'components', match[4] = '75:21'";
final Pattern pattern = Pattern.compile(regex);
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