@NotEnoughForYou
Das Beispiel das du gepostet hast würde jedes html attribut auch mit ausgeben z.B. id="blubb"
Glaube auch das deine Variante so nicht genau gewünscht war, da es auch kein regex verwendet, außerdem würde er bei dir nur den 1. Gefundenen eintrag ausgeben und nicht eine Liste aller Links. Seih mir nicht böse und siehe das bitte als konstruktive Kritik :D
So Zum Problem des Threadstarters:
Habe mich ein wenig schlau gemacht und auch diese Seite hier als Hilfe verwendet:
[Only registered and activated users can see links. Click Here To Register...]
Empfehle die Seite auch da ich sie selber häufiger verwende, wenn es um Java geht.
Habe einen Beispielcode geschrieben, der bei mir soweit funktioniert hat. Wenn es damit noch Probleme geben sollte meld dich hier oder per pm.
Code:
import java.util.ArrayList;
import java.util.List;
/**
* Eine Beispielklasse zum Filtern von Links aus einer html-Seite
*
* 12.12.2012
*
* @author Shiru
*
*/
public class ExampleReg {
/**
* Macht bisher nix
*/
public ExampleReg() {
}
/**
* Mit hilfe von RegEx wird ein pattern erstellt was zum Filter von Links
* innerhalb einer html seite verwendet werden kann. Spezieller filtert er
* alle Links innerhalb eines href-Attributes
*
* @param text der zu filternde Text
* @return eine Liste aller gefundenen Links
*/
public List<String> filterAllHref(String text) {
String pattern_regex = "(.+?)(href=\")(.+?)(\".*)";
List<String> stringlist = new ArrayList<String>();
String temp_str = "";
do {
temp_str = text.replace("\n", "").replace("\r", "")
.replaceAll(pattern_regex, "$3");
if (temp_str != "") {
stringlist.add(temp_str);
}
text = text.replace("href=\"" + temp_str + "\"", "");
} while (text.contains("href=\""));
return stringlist;
}
/**
* Erstellt ein ExampleReg-Objekt und Filtert mit dessen Hilfe alle
* enthaltenden Links aus.
*
* @param args
* wird nicht verwendet
*/
public static void main(String[] args) {
String text = "<a href=\"http://www.blubb.de\" />\n\r"
+ " <h1 id=\"header1\">asdfhref</h1>\n\r\n\r"
+ "<a href=\"http://www.google.de\" />\n\r";
List<String> stringlist = new ExampleReg().filterAllHref(text);
for (String blubb : stringlist) {
System.out.println(blubb);
}
}
}
Wenns dir soweit geholfen hat, die Psc bitte per pm ;D
MfG
Edit: Die Bedingung der While noch ein wenig angepasst. Hoffe jetzt is allet drinne :D