Diese Frage wird hier häufig gestellt.
Reguläre Ausdrücke sind ein schlecht um dieses Problem zu lösen. Tun Sie sich selbst einen Gefallen und verwenden Sie einen HTML-Parser irgendeiner Art.
Regexe sind für das Parsen von HTML unzuverlässig. Sie werden mit einem komplizierten Ausdruck enden, der sich in einigen Eckfällen unerwartet verhält, die wird sonst passieren.
Edita: Si dann ist Ihr HTML so einfach:
Pattern p = Pattern.compile("src\\s*=\\s*([\\"'])?([^ \\"']*)");
Matcher m = p.matcher(str);
if (m.find()) {
String src = m.group(2);
}
Und es gibt eine beliebige Anzahl von Java-HTML-Parsern da draußen.