Как они сказали, не используйте регулярные выражения для разбора HTML. Если вы знаете о недостатках, вы можете сойти с рук, хотя. Попробуйте
Pattern titleFinder = Pattern.compile("<a[^>]*>(.*?)</a>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
Matcher regexMatcher = titleFinder.matcher(subjectString);
while (regexMatcher.find()) {
// matched text: regexMatcher.group(1)
}
будет повторять все совпадения в строке.
Он не будет обрабатывать вложенные теги <a>
и игнорирует все атрибуты внутри тега.