import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "GameID=(\\d+)\">[^>]+>\\s+(?<first_team>[^>]+)?\\s+vs\\s+[^>]+>\\s+(?<second_team>Brisbane)\\s+(?!upcoming)<";
final String string = "\n"
+ "<!DOCTYPE html>\n"
+ "<html lang=\"en\">\n"
+ " <head>\n"
+ " <meta charset=\"utf-8\">\n"
+ " <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n"
+ " <meta name=\"mobile-web-app-capable\" content=\"yes\">\n"
+ " <link rel=\"icon\" sizes=\"196x196\" href=\"http://dtlive.com.au/afl/images/dtliveicon.png\">\n"
+ " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n"
+ " <meta name=\"description\" content=\"dtlive.com.au AFL Fantasy and Real Dream Team website. Live scores, in depth stats in a clean easy to use format\"><title>DTLive.com.au - AFL Fantasy and Real Dream Team website. Live scores, in depth stats in a clean easy to use format</title> <script src=\"https://code.jquery.com/jquery-1.10.2.min.js\"></script>\n"
+ " <script src=\"http://dtlive.com.au/afl/embedapi-master/src/ustream-embedapi.js\"></script>\n"
+ " <link href=\"//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\" rel=\"stylesheet\">\n\n"
+ " <!-- Bootstrap -->\n"
+ " <link rel=\"stylesheet\" href=\"//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css\">\n"
+ " <script src=\"//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js\"></script>\n\n"
+ " <!-- Custom styles for this template -->\n"
+ " <link href=\"http://dtlive.com.au/afl/starter-template2.css\" rel=\"stylesheet\">\n\n"
+ " <!--[if lt IE 9]><script src=\"../../docs-assets/js/ie8-responsive-file-warning.js\"></script><![endif]-->\n"
+ " <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->\n"
+ " <!--[if lt IE 9]>\n"
+ " <script src=\"https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js\"></script>\n"
+ " <script src=\"https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js\"></script>\n"
+ " <![endif]-->\n"
+ " <script>\n"
+ " (function($){\n"
+ " $(document).ready(function(){\n"
+ " $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {\n"
+ " event.preventDefault(); \n"
+ " event.stopPropagation(); \n"
+ " $(this).parent().siblings().removeClass('open');\n"
+ " $(this).parent().toggleClass('open');\n"
+ " });\n"
+ " });\n"
+ " })(jQuery);\n"
+ " </script>\n"
+ " <style>\n"
+ " .marginBottom-0 {margin-bottom:0;}\n\n"
+ " .dropdown-submenu{position:relative;}\n"
+ " .dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}\n"
+ " .dropdown-submenu>a:after{display:block;content:\" \";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}\n"
+ " .dropdown-submenu:hover>a:after{border-left-color:#555;}\n"
+ " .dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}\n"
+ " .dropdown-nowidepad { width: 48px !important; padding-right: 0px !important; padding-left: 0px !important; }\n"
+ " </style>\n"
+ " </head>\n"
+ "<body>\n"
+ "<nav class=\"navbar navbar-inverse navbar-fixed-top\" role=\"navigation\">\n"
+ " <div class=\"container\"><div class=\"col-xs-12\">\n"
+ " <div class=\"navbar-header\">\n"
+ " <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse-1\">\n"
+ " <span class=\"sr-only\">Toggle navigation</span>\n"
+ " <span class=\"icon-bar\"></span>\n"
+ " <span class=\"icon-bar\"></span>\n"
+ " <span class=\"icon-bar\"></span>\n"
+ " </button>\n"
+ " <a class=\"navbar-brand\" href=\"http://www.dtlive.com.au\" style=\"padding: 15px 5px 15px 5px !important\">DTLive</a>\n"
+ " </div>\n"
+ " \n"
+ " <div class=\"collapse navbar-collapse\" id=\"navbar-collapse-1\">\n"
+ " <ul class=\"nav navbar-nav\">\n"
+ " <li><a href=\"http://dtlive.com.au/premium/\" style=\"padding: 0px 5px 0px 5px !important;\"><img src=\"http://www.dtlive.com.au/images/premium.png\"></a></li> \n\n"
+ " <li class=\"dropdown\"><a href=\"http://www.dtlive.com.au/afl/\" class=\"dropdown-toggle dropdown-nowidepad\" data-toggle=\"dropdown\"><img src=\"http://www.dtlive.com.au/images/aflnav_24.png\"> <b class=\"caret\"></b></a>\n"
+ " <ul class=\"dropdown-menu\">\n"
+ " <li>\n"
+ " <form class=\"navbar-form navbar-left\" role=\"search\" action=\"http://dtlive.com.au/afl/playersearch.php\">\n"
+ " <div class=\"input-group\">\n"
+ " <input type=\"text\" class=\"form-control\" placeholder=\"Player Search\" name=\"SearchString\" id=\"srch-term\">\n"
+ " <div class=\"input-group-btn\"><button class=\"btn btn-default\" type=\"submit\"><i class=\"glyphicon glyphicon-search\"></i></button></div>\n"
+ " </div>\n"
+ " </form>\n"
+ " </li>\n"
+ " <li><a href=\"http://www.dtlive.com.au/afl/\">AFL Home</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/afl/dataview.php\">Data View</a></li>\n"
+ " <li><a href=\"http://www.dtlive.com.au/afl/drawingboard/\">Drawing Board</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/afl/projector.php\">Projector</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/afl/teamicons.php\">Team Icons</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/afl/teamstats.php\">Team Stats</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/afl/heatmaps.php\">Heat Maps</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/afl/calvin.php\">Calvins Captains</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/afl/myplayers.php\">My Players</a></li>\n"
+ " <li class=\"divider\"></li>\n"
+ " <li class=\"dropdown dropdown-submenu\"><a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\"><img src=\"http://dtlive.com.au/images/dttalknav.jpg\"> DT Talk</a>\n"
+ " <ul class=\"dropdown-menu\"><li><a href=\"http://dreamteamtalk.com/?p=49141\" target=\"_blank\">Moneyball's $5000 Sunday Funday is upon us!</a></li><li><a href=\"http://dreamteamtalk.com/?p=49147\" target=\"_blank\">Handball happy - Rd 2 Fantasy Review</a></li><li><a href=\"http://dreamteamtalk.com/?p=49152\" target=\"_blank\">My Team 2017 - Round 3</a></li><li><a href=\"http://dreamteamtalk.com/?p=49156\" target=\"_blank\">The Weekend Wash-Up - Round 2</a></li><li><a href=\"http://dreamteamtalk.com/?p=49161\" target=\"_blank\">Fix ‘er up - Ep. 126</a></li></ul>\n"
+ " </li>\n"
+ " <li class=\"dropdown dropdown-submenu\"><a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\"><img src=\"http://dtlive.com.au/images/coachespanel.jpg\"> Coaches Panel</a>\n"
+ " <ul class=\"dropdown-menu\"><li><a href=\"http://coachespanel.com.au/?p=9912\" target=\"_blank\">Makers and Breakers - Round 2</a></li></ul>\n"
+ " </li>\n"
+ " </ul>\n"
+ " </li>\n\n"
+ " <li class=\"dropdown\"><a href=\"http://www.dtlive.com.au/bbl/\" class=\"dropdown-toggle dropdown-nowidepad\" data-toggle=\"dropdown\"><img src=\"http://www.dtlive.com.au/images/bblnav_24.png\"> <b class=\"caret\"></b></a>\n"
+ " <ul class=\"dropdown-menu\">\n"
+ " <li><a href=\"http://www.dtlive.com.au/bbl/\">BBL Home</a></li> </ul>\n"
+ " </li>\n\n\n"
+ " <li class=\"dropdown\"><a href=\"http://www.dtlive.com.au/nbl/\" class=\"dropdown-toggle dropdown-nowidepad\" data-toggle=\"dropdown\"><img src=\"http://www.dtlive.com.au/images/nblnav_24.png\"> <b class=\"caret\"></b></a>\n"
+ " <ul class=\"dropdown-menu\">\n"
+ " <li><a href=\"http://www.dtlive.com.au/nbl/\">NBL Home</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/nbl/myround.php\">My Team</a></li>\n"
+ " <li><a href=\"http://dtlive.com.au/nbl/stats.php\">Stats</a></li>\n"
+ " </ul>\n"
+ " </li>\n"
+ " </ul>\n\n"
+ " <ul class=\"nav navbar-nav navbar-right\">\n"
+ " <li><a href=\"http://dtlive.com.au/register.php\">Sign Up</a></li>\n"
+ " <li class=\"dropdown\">\n"
+ " <a href=\"http://dtlive.com.au/login.php\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Sign in <b class=\"caret\"></b></a>\n"
+ " <ul class=\"dropdown-menu\" style=\"padding: 15px;min-width: 250px;\">\n"
+ " <li>\n"
+ " <div class=\"row\">\n"
+ " <div class=\"col-md-12\">\n"
+ " <form class=\"form\" role=\"form\" method=\"post\" action=\"/afl/viewgames.php\" accept-charset=\"UTF-8\" id=\"login-nav\">\n"
+ " <div class=\"form-group\"><input type=\"text\" class=\"form-control\" name=\"user\" id=\"user\" placeholder=\"Username\" required></div>\n"
+ " <div class=\"form-group\"><input type=\"password\" class=\"form-control\" name=\"pass\" id=\"pass\" placeholder=\"Password\" required></div>\n"
+ " <div class=\"form-group\"><input type=\"submit\" name=\"sublogin\" class=\"btn btn-success btn-block\" value=\"Login\"></div>\n"
+ " </form>\n"
+ " <hr><a href=\"https://www.facebook.com/dialog/oauth?client_id=695932313759732&redirect_uri=http%3A%2F%2Fdtlive.com.au%2Fafl%2Fviewgames.php%3FDoFacebookLogin%3DYes%26&state=96849fa138d10e32c196eb1cd2d2ed62&sdk=php-sdk-3.2.3\" class=\"btn btn-primary btn-block\" style=\"color: #FFF !important;\">Login using Facebook</a>\n"
+ " <hr><a href=\"../forgotpass.php\" class=\"btn btn-warning btn-block\">Forgotten Password?</a>\n"
+ " </div>\n"
+ " </div>\n"
+ " </li>\n"
+ " </ul>\n"
+ " </li>\n"
+ " </ul>\n"
+ " </div></div>\n\n"
+ " </div><!-- /.navbar-collapse -->\n"
+ "</nav>\n"
+ "<div class=\"container\">\n"
+ "<div class=\"row\"> </div><div class=\"row\"><h2>2017 Premiership Season</h2></div><div class=\"row\"><h4>Round 3</h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1153\"><img src=\"images/SYD.png\"> Sydney vs <img src=\"images/COL.png\"> Collingwood (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1154\"><img src=\"images/NME.png\"> North Melbourne vs <img src=\"images/GWS.png\"> GWS Giants (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1155\"><img src=\"images/RIC.png\"> Richmond vs <img src=\"images/WCE.png\"> West Coast (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1156\"><img src=\"images/GEE.png\"> Geelong vs <img src=\"images/MEL.png\"> Melbourne (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1158\"><img src=\"images/FRE.png\"> Fremantle vs <img src=\"images/WBD.png\"> Western Bulldogs (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1157\"><img src=\"images/PTA.png\"> Port Adelaide vs <img src=\"images/ADE.png\"> Adelaide (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1159\"><img src=\"images/STK.png\"> St Kilda vs <img src=\"images/BRL.png\"> Brisbane (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1160\"><img src=\"images/CAR.png\"> Carlton vs <img src=\"images/ESS.png\"> Essendon (upcoming)</a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1161\"><img src=\"images/GCS.png\"> Gold Coast vs <img src=\"images/HAW.png\"> Hawthorn (upcoming)</a></h4></div><div class=\"row\"><h4>Round 2</h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1144\"><img src=\"images/RIC.png\"> Richmond vs <img src=\"images/COL.png\"> Collingwood <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1145\"><img src=\"images/WBD.png\"> Western Bulldogs vs <img src=\"images/SYD.png\"> Sydney <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1146\"><img src=\"images/HAW.png\"> Hawthorn vs <img src=\"images/ADE.png\"> Adelaide <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1147\"><img src=\"images/GWS.png\"> GWS Giants vs <img src=\"images/GCS.png\"> Gold Coast <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1148\"><img src=\"images/BRL.png\"> Brisbane vs <img src=\"images/ESS.png\"> Essendon <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1149\"><img src=\"images/WCE.png\"> West Coast vs <img src=\"images/STK.png\"> St Kilda <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1150\"><img src=\"images/GEE.png\"> Geelong vs <img src=\"images/NME.png\"> North Melbourne <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1151\"><img src=\"images/MEL.png\"> Melbourne vs <img src=\"images/CAR.png\"> Carlton <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1152\"><img src=\"images/PTA.png\"> Port Adelaide vs <img src=\"images/FRE.png\"> Fremantle <small>(completed)</small></a></h4></div><div class=\"row\"><h4>Round 1</h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1135\"><img src=\"images/CAR.png\"> Carlton vs <img src=\"images/RIC.png\"> Richmond <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1136\"><img src=\"images/COL.png\"> Collingwood vs <img src=\"images/WBD.png\"> Western Bulldogs <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1138\"><img src=\"images/SYD.png\"> Sydney vs <img src=\"images/PTA.png\"> Port Adelaide <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1137\"><img src=\"images/STK.png\"> St Kilda vs <img src=\"images/MEL.png\"> Melbourne <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1140\"><img src=\"images/ESS.png\"> Essendon vs <img src=\"images/HAW.png\"> Hawthorn <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1139\"><img src=\"images/GCS.png\"> Gold Coast vs <img src=\"images/BRL.png\"> Brisbane <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1141\"><img src=\"images/NME.png\"> North Melbourne vs <img src=\"images/WCE.png\"> West Coast <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1142\"><img src=\"images/ADE.png\"> Adelaide vs <img src=\"images/GWS.png\"> GWS Giants <small>(completed)</small></a></h4></div><div class=\"row\"><h4><a href=\"livescores.php?GameID=1143\"><img src=\"images/FRE.png\"> Fremantle vs <img src=\"images/GEE.png\"> Geelong <small>(completed)</small></a></h4></div><br><br>\n"
+ " </body>\n"
+ "</html>";
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