import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "<a\\s+.*?href=\"https:\\/\\/code.amazon.com\\/packages\\/AWSBrewPricingPlcConsole\\/releases\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)";
final String string = "\n\n\n\n\n"
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n"
+ " \"http://www.w3.org/TR/html4/strict.dtd\">\n"
+ "<html>\n\n"
+ "<head>\n"
+ " <title>\n"
+ " AWSBrewPricingPlcConsole - Releases - Brazil Directory\n"
+ " </title>\n\n"
+ " \n\n"
+ "<!-- EXPERIMENTAL: Subject to change, don't rely on these -->\n"
+ "<meta name=\"environment\" content=\"DevCentralWebsite\">\n"
+ "<meta name=\"stage\" content=\"Prod\">\n"
+ "<!-- /EXPERIMENTAL -->\n\n\n"
+ " <link rel=\"stylesheet\"\n"
+ " type=\"text/css\"\n"
+ " href=\"https://internal-cdn.amazon.com/dtux.amazon.com/stylesheets/dtux-style.css\">\n\n"
+ " <link href=\"https://internal-cdn.amazon.com/devcentral.amazon.com/style/helptips.css\"\n"
+ " rel=\"stylesheet\"\n"
+ " type=\"text/css\">\n\n"
+ " <link rel=\"icon\"\n"
+ " href=\"https://internal-cdn.amazon.com/devcentral.amazon.com/images/brazil.ico\"\n"
+ " type=\"image/x-icon\">\n"
+ " <link rel=\"shortcut icon\"\n"
+ " href=\"https://internal-cdn.amazon.com/devcentral.amazon.com/images/brazil.ico\"\n"
+ " type=\"image/x-icon\">\n\n"
+ " <link rel=\"stylesheet\"\n"
+ " type=\"text/css\"\n"
+ " href=\"https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/plugins/autocomplete/1.1/jquery.autocomplete.min.css\">\n\n"
+ " <link href=\"https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/stylesheet.min.css?size=24097\"\n"
+ " rel=\"stylesheet\"\n"
+ " type=\"text/css\">\n\n"
+ " <link rel=\"stylesheet\" type=\"text/css\" href=\"https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/visualizer/stylesheets/visualizer.min.css?size=1088\" >\n\n"
+ " <link rel=\"stylesheet\"\n"
+ " type=\"text/css\"\n"
+ " href=\"https://internal-cdn.amazon.com/is-it-down.amazon.com/stylesheets/stripe.css\">\n\n"
+ " <script type=\"text/javascript\"\n"
+ " src=\"https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/1.7.2/jquery.min.js\"></script>\n"
+ " <script type=\"text/javascript\"\n"
+ " src=\"https://internal-cdn.amazon.com/dtux.amazon.com/javascripts/cache/dtux-style.js\"></script>\n"
+ " <script type=\"text/javascript\"\n"
+ " src=\"https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/plugins/autocomplete/1.1/jquery.autocomplete.min.js\"></script>\n"
+ " <script type=\"text/javascript\"\n"
+ " src=\"https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/plugins/tablesorter/2.0.3/jquery.tablesorter.min.js\"></script>\n\n"
+ " <script type=\"text/javascript\"\n"
+ " src=\"https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/script.min.js?size=2302\">\n"
+ " </script>\n\n"
+ " <script type=\"text/javascript\">\n"
+ " IS_PROD = true;\n"
+ " REMOTE_USER = 'vladyang';\n"
+ " </script>\n\n"
+ "</head>\n\n"
+ "<body>\n"
+ "<div id=\"content\">\n"
+ " <div class=\"inner-container\">\n\n"
+ " <div class=\"indexHeader\">\n"
+ " <span class='titleBarTitle'>\n"
+ " \n"
+ "<a href=\"/\">devcentral</a> >\n\n"
+ " <a href=\"https://devcentral.amazon.com/ac/brazil/directory/\">brazil directory</a>\n"
+ " > \n"
+ " <a href=\"https://devcentral.amazon.com/ac/brazil/directory/packages/by-owner\">packages</a> > <a href=\"https://devcentral.amazon.com/ac/brazil/directory/package/overview/AWSBrewPricingPlcConsole\">AWSBrewPricingPlcConsole</a> > <a href=\"https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.3\">1.3</a> > release notes\n\n"
+ " </span>\n"
+ " </div>\n\n"
+ " <div class='titleBarHelper'>\n"
+ " \n"
+ " <div id=\"searchBoxes\">\n"
+ " \n"
+ " \n"
+ " <form action=\"https://devcentral.amazon.com/ac/brazil/directory/packages/search\"\n"
+ " id=\"findPackageForm\">\n"
+ " <div>\n"
+ " Search Packages:\n"
+ " <input type=\"text\" id=\"findPackage\" name=\"q\">\n"
+ " </div>\n"
+ " </form>\n\n"
+ " \n"
+ " \n"
+ " <form action=\"https://devcentral.amazon.com/ac/brazil/directory/version-sets/search\"\n"
+ " id=\"findVersionSetForm\">\n"
+ " <div>\n"
+ " Search Version Sets:\n"
+ " <input type=\"text\"\n"
+ " id=\"findVersionSet\"\n"
+ " class=\"versionSetInput\"\n"
+ " name=\"q\"\n"
+ " value=\"live\">\n"
+ " </div>\n"
+ " </form>\n\n"
+ " </div>\n\n"
+ " </div>\n\n"
+ " <h1>Package: AWSBrewPricingPlcConsole</h1>\n\n"
+ " \n"
+ " \n\n"
+ "<!--\n"
+ "Timing for addPackageToRoute (in seconds):\n"
+ "{\n"
+ " 'getBranchByPackageAndName' => '0.0113730430603027',\n"
+ " 'getPackageSynopsisByName' => '0.0839250087738037'\n"
+ "}\n\n"
+ "-->\n\n"
+ "<div id=\"viewInLinks\">\n"
+ "View in\n"
+ " <a href=\"/brazil/go/src-control?pkg=AWSBrewPricingPlcConsole\">Code Browser</a>\n"
+ " |\n"
+ " <a href=\"https://omni-grok.amazon.com/s?path=/AWSBrewPricingPlcConsole&indexName=GitFarm_6\">OmniGrok</a>\n\n"
+ " |\n"
+ " <a href=\"https://apollo.amazon.com/package.html?packageName=AWSBrewPricingPlcConsole&showEnvironmentUsage=1\">\n"
+ " Apollo\n"
+ " </a>\n"
+ "</div>\n\n\n"
+ " <div id=\"headerWarning\">\n"
+ " \n\n"
+ " </div>\n\n"
+ " <div id=\"flash\">\n"
+ " \n"
+ " \n"
+ " \n\n\n"
+ " </div>\n\n"
+ " \n"
+ " \n"
+ " \n"
+ "<div class=\"tabs has-subnav\">\n"
+ "<ul>\n"
+ " <li class=\"tab \"><a class=\" \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/overview/AWSBrewPricingPlcConsole\">Overview</a></li>\n"
+ " <li class=\"tab \"><a class=\" \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/branches/AWSBrewPricingPlcConsole\">Branches</a></li>\n"
+ " <li class=\"tab \"><a class=\" \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/releases/AWSBrewPricingPlcConsole\">All Releases</a></li>\n"
+ " <li class=\"tab \"><a class=\" \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/sourceGuidance/AWSBrewPricingPlcConsole\">Source Guidance</a></li>\n"
+ " <li class=\"tab active\"><a class=\"active vendor-guidance-NONE\"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.3\">1.3 </a></li>\n"
+ " <li class=\"tab \"><a class=\" vendor-guidance-NONE\"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.0\">1.0 </a></li>\n"
+ "</ul>\n"
+ "</div>\n\n"
+ " \n"
+ " \n"
+ "<div class=\"subtabs\">\n"
+ "<ul>\n"
+ " <li class=\"subtab \"><a class=\" \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.3\">Summary</a></li>\n"
+ " <li class=\"subtab active\"><a class=\"active \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/notes/AWSBrewPricingPlcConsole?majorVersion=1.3\">Releases</a></li>\n"
+ " <li class=\"subtab \"><a class=\" \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/deps/AWSBrewPricingPlcConsole?direction=down&majorVersion=1.3&graphType=runtime_dependencies-resolved\">Dependencies</a></li>\n"
+ " <li class=\"subtab \"><a class=\" \"\n"
+ " href=\"https://devcentral.amazon.com/ac/brazil/directory/package/deps/AWSBrewPricingPlcConsole?direction=up&majorVersion=1.3\">Consumers</a></li>\n"
+ "</ul>\n"
+ "</div>\n\n\n\n\n"
+ " <div class='underNav'>\n"
+ " <div class=\"subNavHolder\">\n\n\n\n\n\n\n\n\n\n"
+ "<div id=\"actions\">\n"
+ " <h3>Package Actions</h3>\n\n\n"
+ " \n"
+ "<form method=\"get\"\n"
+ " action=\"/brazil/packages/versionDiff/\">\n"
+ " <div>\n"
+ " <input type=\"hidden\" name=\"packageName\" value=\"AWSBrewPricingPlcConsole\">\n"
+ " <button type=\"submit\">\n"
+ " Diff <b>Versions</b>\n"
+ " </button>\n"
+ " </div>\n"
+ "</form>\n\n"
+ "</div>\n"
+ " \n\n\n\n\n\n\n\n\n"
+ "<h2>Releases</h2>\n\n"
+ "<div class=\"releaseNotes\">\n"
+ "<table class=\"releaseNotes\">\n"
+ " <tr>\n"
+ " <td class=\"version\">\n"
+ " <a name=\"1.3.3.0\"></a><a href=\"https://code.amazon.com/packages/AWSBrewPricingPlcConsole/releases/1.3.3.0\"><b>1.3</b>.3.0</a>\n"
+ " </td>\n"
+ " <td class=\"nowrap\">Tue Jan 8 01:39:08 2019</td>\n"
+ " <td>\n"
+ " AWSBrewPricingPlcConsole/<a href=\"/brazil/go/src-control?branch=mainline&pkg=AWSBrewPricingPlcConsole\">mainline</a>@<a href=\"/brazil/go/src-control?branch=mainline&cln=6a10a7b2e3108941009efcfaef877b0df6a4063a&pkg=AWSBrewPricingPlcConsole\">6a10a7b2e3108941009efcfaef877b0df6a4063a</a> (GitFarm)\n"
+ " </td>\n"
+ " <td>\n"
+ " <a href=\"https://devcentral.amazon.com/ac/brazil/directory/version-set/overview/AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole\">AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole</a>\n"
+ " </td>\n"
+ " <td style=\"width: 50%\">\n"
+ " Built in <a href=\"https://build.amazon.com/2058367784\">request 2058367784</a>\n"
+ " </td>\n\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td colspan=\"5\" class=\"text\">\n"
+ " <div style=\"overflow: auto\">\n"
+ " Requester: vladyang<br>\n"
+ " [Change 6a10a7b2e3108941009efcfaef877b0df6a4063a by vladyang] adding version info<br>\n"
+ "<br>\n\n"
+ " </div>\n"
+ " </td>\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td class=\"version\">\n"
+ " <a name=\"1.3.2.0\"></a><a href=\"https://code.amazon.com/packages/AWSBrewPricingPlcConsole/releases/1.3.2.0\"><b>1.3</b>.2.0</a>\n"
+ " </td>\n"
+ " <td class=\"nowrap\">Tue Jan 8 01:20:29 2019</td>\n"
+ " <td>\n"
+ " AWSBrewPricingPlcConsole/<a href=\"/brazil/go/src-control?branch=mainline&pkg=AWSBrewPricingPlcConsole\">mainline</a>@<a href=\"/brazil/go/src-control?branch=mainline&cln=3d728050bff78d98870ca70662e62bebbfa91f48&pkg=AWSBrewPricingPlcConsole\">3d728050bff78d98870ca70662e62bebbfa91f48</a> (GitFarm)\n"
+ " </td>\n"
+ " <td>\n"
+ " <a href=\"https://devcentral.amazon.com/ac/brazil/directory/version-set/overview/AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole\">AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole</a>\n"
+ " </td>\n"
+ " <td style=\"width: 50%\">\n"
+ " Built in <a href=\"https://build.amazon.com/2058362893\">request 2058362893</a>\n"
+ " </td>\n\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td colspan=\"5\" class=\"text\">\n"
+ " <div style=\"overflow: auto\">\n"
+ " Requester: vladyang<br>\n"
+ " [3d72805 by vladyang] Initial Test Set\n"
+ " </div>\n"
+ " </td>\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td class=\"version\">\n"
+ " <a name=\"1.3.1.0\"></a><a href=\"https://code.amazon.com/packages/AWSBrewPricingPlcConsole/releases/1.3.1.0\"><b>1.3</b>.1.0</a>\n"
+ " </td>\n"
+ " <td class=\"nowrap\">Tue Jan 8 00:50:19 2019</td>\n"
+ " <td>\n"
+ " AWSBrewPricingPlcConsole/<a href=\"/brazil/go/src-control?branch=refactorings&pkg=AWSBrewPricingPlcConsole\">refactorings</a>@<a href=\"/brazil/go/src-control?branch=refactorings&cln=afcb73f4968c4fc6baf6beb85f8414ad1a2ab603&pkg=AWSBrewPricingPlcConsole\">afcb73f4968c4fc6baf6beb85f8414ad1a2ab603</a> (GitFarm)\n"
+ " </td>\n"
+ " <td>\n"
+ " <a href=\"https://devcentral.amazon.com/ac/brazil/directory/version-set/overview/AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole\">AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole</a>\n"
+ " </td>\n"
+ " <td style=\"width: 50%\">\n"
+ " Built in <a href=\"https://build.amazon.com/2058354122\">request 2058354122</a>\n"
+ " </td>\n\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td colspan=\"5\" class=\"text\">\n"
+ " <div style=\"overflow: auto\">\n"
+ " Requester: vladyang<br>\n"
+ " [afcb73f by vladyang] Fixing package versioning\n"
+ " </div>\n"
+ " </td>\n"
+ " </tr>\n"
+ "</table>\n"
+ "</div>\n\n"
+ "<a name=\"end\"></a>\n\n\n"
+ "<script type=\"text/javascript\"\n"
+ " src=\"https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/js/package.min.js?size=1292\"></script>\n\n\n\n\n"
+ " <div style=\"clear:both\"></div>\n"
+ " </div>\n"
+ " </div>\n"
+ " </div>\n"
+ "</div>\n\n"
+ " <div id='footer'>\n"
+ " <div class='column'>\n"
+ " <h3>Packages</h3>\n"
+ " <ul>\n"
+ " <li><a href=\"https://octane.amazon.com/package\">Create Package</a></li>\n"
+ " <li><a href=\"/brazil/packages\">Third Party Packages</a></li>\n"
+ " <li><a href=\"https://code.amazon.com/packages/find_by_team_for_user\">Packages By Owner</a></li>\n"
+ " <li><a href=\"/ac/brazil/directory/packages/prune-list\">Pruned Packages</a></li>\n"
+ " </ul>\n"
+ " </div>\n"
+ " <div class='column'>\n"
+ " <h3>Version Sets</h3>\n"
+ " <ul>\n"
+ " <li><a href=\"https://code.amazon.com/version-sets/new\">Create</a></li>\n"
+ " <li><a href=\"https://code.amazon.com/version-sets/\">Browse</a></li>\n"
+ " </ul>\n"
+ " </div>\n"
+ " <div class='business_card'>\n"
+ " <h3>Need help?</h3>\n"
+ " <ul>\n"
+ " <li><a href=\"https://w.amazon.com/index.php/BuilderTools/Product/Brazil_Package_Directory\">Package Directory Documentation</a></li>\n"
+ " <li><a href=\"https://i.amazon.com/issues/create?assignedFolder=27de5d2d-8357-4fe4-9344-7f9d95d94d6b&descriptionContentType=text%2Famz-markdown-sim&extensions%5Btt%5D%5Bimpact%5D=4\">Submit an Issue (problems or suggestions)</a></li>\n"
+ " <li><a href=\"https://w.amazon.com/index.php/BuilderTools/OfficeHours\">Office Hours</a></li>\n"
+ " </ul>\n"
+ " <div class=\"browser_support\">\n"
+ " <a href=\"https://w.amazon.com/?BuilderTools/Browser_Support_Policy\">Browser Support Policy</a>\n"
+ " </div>\n"
+ " </div>\n"
+ " </div>\n\n"
+ " \n"
+ "<script type=\"text/javascript\" src=\"https://internal-cdn.amazon.com/devcentral.amazon.com/js/display.min.js?size=582\"></script>\n\n\n"
+ " <script type=\"text/javascript\" src=\"https://internal-cdn.amazon.com/is-it-down.amazon.com/javascripts/stripe.min.js\"></script>\n"
+ " <script type=\"text/javascript\">\n"
+ " // \"Is It Down?\" Stripe for Package Builder\n"
+ " isItDownStripe(\"brazil\", 2, 1);\n"
+ " </script>\n\n"
+ " </body>\n"
+ "</html>\n\n\n\n";
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