Le altre risposte sono vere. Java Regex API non è uno strumento adatto per raggiungere il tuo obiettivo. Utilizzare strumenti di alto livello efficienti, sicuri e ben testati menzionati nelle altre risposte.
Se i tuoi questione riguarda piuttosto Regex API che un problema di vita reale (fini ad esempio di apprendimento) - si può fare con il seguente codice:
String html = "foo <a href='link1'>bar</a> baz <a href='link2'>qux</a> foo";
Pattern p = Pattern.compile("<a href='(.*?)'>");
Matcher m = p.matcher(html);
while(m.find()) {
System.out.println(m.group(0));
System.out.println(m.group(1));
}
e l'uscita è:
<a href='link1'>
link1
<a href='link2'>
link2
Si prega di notare che qualificatore pigro/riluttante *? deve essere usato per ridurre il raggruppamento al singolo tag. Il gruppo 0 è l'intera partita, il gruppo 1 è la successiva partita del gruppo (la successiva coppia di parentesi).
fonte
2009-03-24 13:17:37
questione canonica: * [RegEx partita tag aperti ad eccezione di XHTML tag autonomi] (http://stackoverflow.com/questions/1732348/) * –