import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?sm)span class=\\'Finish F(\\d{1,2}).*?<td style=\"text-align:center\">(\\d{1,2}e*).*?target=\"_blank\">(.+?)</a>.*?<td class=\\'trainer\\'>.*?target=\"_blank\">(.+?)</a>.*?<td class=\\'jockey\\'>.*?<span class=\\'Hilite\\'>(.+?)</span></a>.*?<td style=\"text-align:center\">(.*?)</td>.*?<td style=\"text-align:center\">(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>";
final String string = "<!-- start of races -->\n"
+ "<a name=\"Race1\"></a><div class=\"race-title-spacer\"></div>\n"
+ "<table width=\"750\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\" class=\"race-title\">\n"
+ " <tr>\n"
+ " <th><span>Race 1 - 1:50PM PEEL VALLEY TYRES - CG&E MAIDEN PLATE (1200 METRES)</span>\n"
+ " <span class=\"localtimedisplayed\">Times displayed in local time of Race Meeting</span>\n"
+ " </th>\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td>\n\n"
+ "<b>Of $22,000.1st $11,200, 2nd $3,900, 3rd $2,100, 4th $1,100, 5th $720, 6th $540, 7th $500, 8th $500, 9th $500, 10th $500, Equine Welfare Fund $220, Jockey Welfare Fund $220. </b><br>Maiden, Set Weights, Colts, Geldings and Entires, Apprentices can claim.<br>BOBS Bonus Available Up To $9625<br><br><b>Track Name:</b> Main <b>Track Type:</b> Turf <b>Track Condition:</b> Good 3 <b>Time:</b> 1:10.66 <b>Last 600m:</b> 0:36.42 <b>Timing Method:</b> Electronic\n\n"
+ " \n"
+ " </td>\n"
+ " </tr>\n"
+ "</table>\n\n"
+ "<br>\n\n"
+ "<table width=\"750\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" class=\"race-strip-fields\">\n"
+ " <tr>\n"
+ " <th class=\"no\">Color</th>\n"
+ " <th style=\"text-align:center\" width=\"5%\">Finish</th>\n"
+ " <th style=\"text-align:center\" width=\"5%\">No.</th>\n"
+ " <th width=\"20%\">Horse</th>\n"
+ " <th width=\"19%\">Trainer</th>\n"
+ " <th width=\"20%\">Jockey</th>\n"
+ " <th style=\"text-align:center\" width=\"6%\">Margin</th>\n"
+ " <th style=\"text-align:center\" width=\"2%\">Bar.</th>\n"
+ " <th width=\"12%\">Weight</th>\n"
+ " <th width=\"5%\">Penalty</th>\n"
+ " <th width=\"15%\">Starting Price</th> \n"
+ " </tr>\n"
+ " <tr class='EvenRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/34223.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F1'>1</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/34223.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">1</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU2NjQ1OTA4MA%3d%3d&src=horseform&raceentry=MTI3NDc0NjUzMzA%3d\" target=\"_blank\">AKECHETA</a> <span style=\"float:right\"></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=NDE0NjM4Mjgw&trainername=Melanie+O%27Gorman\" target=\"_blank\">Melanie O'Gorman</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=MjM3MTA3MTA%3d\" target=\"_blank\"><span class='Hilite'>Andrew Gibbons</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\"></td>\n"
+ " <td style=\"text-align:center\">7</td>\n"
+ " <td>59kg</td>\n"
+ " <td></td>\n"
+ " <td>$1.40F</td>\n"
+ " </tr>\n"
+ " <tr class='OddRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/43103.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F2'>2</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/43103.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">5</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=MTEyMjI1NjYyMA%3d%3d&src=horseform&raceentry=MTI3NDk2NDg3MDA%3d\" target=\"_blank\">KENNYWYN</a> <span style=\"float:right\"></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=MTkzMDczNDA%3d&trainername=Les+Roberts\" target=\"_blank\">Les Roberts</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=MjQ3NDk2NzA%3d\" target=\"_blank\"><span class='Hilite'>Michael Squires</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\">1.91L</td>\n"
+ " <td style=\"text-align:center\">5</td>\n"
+ " <td>59kg</td>\n"
+ " <td></td>\n"
+ " <td>$8.50</td>\n"
+ " </tr>\n"
+ " <tr class='EvenRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/61483.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F3'>3</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/61483.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">4</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU2Mzk3NjAxMA%3d%3d&src=horseform&raceentry=MTI3NDkxMTcwMTA%3d\" target=\"_blank\">JOHN PAUL</a> <span style=\"float:right\"></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=MjI5MzI1MTc4NjA%3d&trainername=Craig+Clegg\" target=\"_blank\">Craig Clegg</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=ODMxMDE3MDQw\" target=\"_blank\"><span class='Hilite'>Ms Belinda Hodder</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\">1.92L</td>\n"
+ " <td style=\"text-align:center\">3</td>\n"
+ " <td>59kg</td>\n"
+ " <td></td>\n"
+ " <td>$26</td>\n"
+ " </tr>\n"
+ " <tr class='OddRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/9041.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F4'>4</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/9041.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">8</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU5MjQxNDIxMA%3d%3d&src=horseform&raceentry=MTI3NDcxMTAxMzA%3d\" target=\"_blank\">MICK’S REGRET</a> <span style=\"float:right\"><img alt='BOBS Bonus Scheme' title='BOBS Bonus Scheme' src='/design/images/BonusLogos/BOBS.png' style='vertical-align:middle;' /></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=MjIyMDY2NjA%3d&trainername=Sue+Grills\" target=\"_blank\">Sue Grills</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=ODgzMTc4MTYw\" target=\"_blank\"><span class='Hilite'>Ms Rachael Murray</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\">3.63L</td>\n"
+ " <td style=\"text-align:center\">8</td>\n"
+ " <td>58.5kg</td>\n"
+ " <td></td>\n"
+ " <td>$15</td>\n"
+ " </tr>\n"
+ " <tr class='EvenRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/61334.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F5'>5</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/61334.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">9</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU4Mzg0MTY4MA%3d%3d&src=horseform&raceentry=MTI3NDMwMjMxMTA%3d\" target=\"_blank\">PATAGONIAN</a> <span style=\"float:right\"><img alt='BOBS Bonus Scheme' title='BOBS Bonus Scheme' src='/design/images/BonusLogos/BOBS.png' style='vertical-align:middle;' /></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=MTI5MzU5NDA%3d&trainername=Paul+Perry\" target=\"_blank\">Paul Perry</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=OTQzODc1MTgw\" target=\"_blank\"><span class='Hilite'>Travis Wolfgram</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\">5.83L</td>\n"
+ " <td style=\"text-align:center\">6</td>\n"
+ " <td>58.5kg</td>\n"
+ " <td></td>\n"
+ " <td>$6</td>\n"
+ " </tr>\n"
+ " <tr class='OddRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/8949.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F6'>6</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/8949.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">3</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU4OTY0ODA5MA%3d%3d&src=horseform&raceentry=MTI3NDk1Mjc3MTA%3d\" target=\"_blank\">CHEROKEE (NZ)</a> <span style=\"float:right\"></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=MjIyMDY2NjA%3d&trainername=Sue+Grills\" target=\"_blank\">Sue Grills</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=NTU4NzI2NjAzMA%3d%3d\" target=\"_blank\"><span class='Hilite'>Ms Wendy Peel</span><span class='apprentice-claim'> (a1.5/50kg)</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\">6.4L</td>\n"
+ " <td style=\"text-align:center\">4</td>\n"
+ " <td>59kg (cd 57.5kg)</td>\n"
+ " <td></td>\n"
+ " <td>$41</td>\n"
+ " </tr>\n"
+ " <tr class='EvenRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/8544.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F7'>7</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/8544.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">10</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU5MjIyNjYyMA%3d%3d&src=horseform&raceentry=MTI3NDcyODQ0MDA%3d\" target=\"_blank\">TONOSAMA</a> <span style=\"float:right\"></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=MTk2MTM3MDA%3d&trainername=Mack+Griffith\" target=\"_blank\">Mack Griffith</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=MjMzMDIyMzA%3d\" target=\"_blank\"><span class='Hilite'>Grant Buckley</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\">8.24L</td>\n"
+ " <td style=\"text-align:center\">1</td>\n"
+ " <td>58.5kg</td>\n"
+ " <td></td>\n"
+ " <td>$15</td>\n"
+ " </tr>\n"
+ " <tr class='OddRow'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/69256.png\" /></td>\n"
+ " \n"
+ " <td style=\"text-align:center\"><span class='Finish F8'>8</span></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/69256.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">2</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU2ODE3MDcwMA%3d%3d&src=horseform&raceentry=MTI3NDg2Njg1NzA%3d\" target=\"_blank\">BOUNDARY RYDER</a> <span style=\"float:right\"></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=MjE3ODI2NDA%3d&trainername=Ruth+Cooper\" target=\"_blank\">Ruth Cooper</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=OTQwOTA1OTMw\" target=\"_blank\"><span class='Hilite'>Vad Bolozhinskyi</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\">9.23L</td>\n"
+ " <td style=\"text-align:center\">2</td>\n"
+ " <td>59kg</td>\n"
+ " <td></td>\n"
+ " <td>$91</td>\n"
+ " </tr>\n"
+ " <tr class='EvenRow Scratched'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/8343.png\" /></td>\n"
+ " \n"
+ " <td></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/8343.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">6</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU4MjA1NzkxMA%3d%3d&src=horseform&raceentry=MTI3NTA5NTQwNjA%3d\" target=\"_blank\">COMES ’N’ GOES</a> <span style=\"float:right\"><img alt='BOBS Bonus Scheme' title='BOBS Bonus Scheme' src='/design/images/BonusLogos/BOBS.png' style='vertical-align:middle;' /></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=ODIzODgzMDcw&trainername=Luke+A+Thomas\" target=\"_blank\">Luke A Thomas</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=MA%3d%3d\" target=\"_blank\"></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\"></td>\n"
+ " <td style=\"text-align:center\">0</td>\n"
+ " <td></td>\n"
+ " <td></td>\n"
+ " <td></td>\n"
+ " </tr>\n"
+ " <tr class='OddRow Scratched'>\n"
+ " <td><img class=\"minimizeStyle\" src=\"https://www.racingaustralia.horse/JockeySilks/80013.png\" /></td>\n"
+ " \n"
+ " <td></td>\n"
+ " \n"
+ " <!-- <td><img class=\"minimizeStyle\" onmouseover=\"showBigImage(this);\" onmouseout=\"showSmallImage(this);\" src=\"https://www.racingaustralia.horse/JockeySilks/80013.png\" /></td> -->\n"
+ " <td style=\"text-align:center\">7</td>\n"
+ " \n"
+ " \n"
+ " <td class='horse'><a class='GreenLink' href=\"../InteractiveForm/HorseFullForm.aspx?horsecode=NTU4ODIxMDY0MA%3d%3d&src=horseform&raceentry=MTI3NDkwODgxNTA%3d\" target=\"_blank\">ENSEGUIDA</a> <span style=\"float:right\"><img alt='BOBS Bonus Scheme' title='BOBS Bonus Scheme' src='/design/images/BonusLogos/BOBS.png' style='vertical-align:middle;' /></span></td>\n"
+ " <td class='trainer'><a class='GreenLink' href=\"../InteractiveForm/TrainerLastRuns.aspx?trainercode=ODQzOTc3NDAw&trainername=Nathan+Doyle\" target=\"_blank\">Nathan Doyle</a></td> \n"
+ " \n"
+ " <td class='jockey'><a class='GreenLink' href=\"../InteractiveForm/JockeyLastRuns.aspx?jockeycode=MjMxMDE0NjU0MTA%3d\" target=\"_blank\"><span class='Hilite'>Ashley Morgan</span></a></td> \n"
+ " \n"
+ " <td style=\"text-align:center\"></td>\n"
+ " <td style=\"text-align:center\">0</td>\n"
+ " <td></td>\n"
+ " <td></td>\n"
+ " <td></td>\n"
+ " </tr>\n"
+ " \n"
+ "</table>";
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