rendered paste body String htmlInput = "<tr>\n<td>testCommand</td>\n<td>testValue</td>\n<td>testTarget</td>\n</tr>"; String htmlRegex = "<trs*[^>]*>\\s*(<!--[\\d\\D]*?-->)?\\s*<tds*[^>]*>\\s*([\\w]*?)\\s*</td>\\s*<tds*[^>]*>([\\d\\D]*?)</td>\\s*(<tds*[^>]*>([\\d\\D]*?)</td>|<tds*/>)\\s*</tr>\\s*"; String xmlInput = "<command name=\"testName\" target=\"testTarget\" value=\"value\">"; String xmlRegex = "<command.* name=\"([^\"\\r\\n]*)\".* target=\"([^\"\\r\\n]*)\".* value=\"([^\"\\r\\n]*)\".*>"; Pattern pattern = Pattern.compile(xmlRegex); Matcher matcher = pattern.matcher(xmlInput); while (matcher.find()) { System.out.println("found " + matcher.groupCount()); for (int i = 0; i <= matcher.groupCount(); i++) { System.out.println(i + ": " + matcher.group(i)); } }