URL aus einem String extrahieren, mit reg. Ausdrücken?

Math55

Mitglied
hallo, ich möchte alle in einem string befindeichen urls mit reg. ausdrücken finden und dann durch links ersetzen, also so:


djskadhsjahdakjdhasd http://www.test.de/test/source/index.html fdjkfhdsjfhkfjssdfs http://www.hallo.com/en, fjsdfhdjhfksjfhkksdhfksjfhsdk http://www.xyz.de/source.

da soll dann sowas bei rauskommen:

djskadhsjahdakjdhasd <a href=www.test.de/test/source/index.html>www.test.de/test/source/index.html</a> fdjkfhdsjfhkfjssdfs <a href=www.hallo.com/en>www.hallo.com/en</a>, fjsdfhdjhfksjfhkksdhfksjfhsdk <a href=www.xyz.de/source>www.xyz.de/source</a>.

also es müssen alle url, die mit www, oder http anfangen ersetzt werden. mein ansatz funktioniert nicht, da ich zwischen url die mit http:// oder www beginnen unterscheide. es muss aber möglich sein, beides in einem satz angeben zu können.

ne idee?

vielen 1000 dank :-)
 
hmm, also wenn dein String immer so aussieht kannst du im Prinziep auch einen StringTokenizer benutzen da dein String immer durch ein Leerzeichen(/s) getrennt ist und dann halt immer zwei Tokens zu deiner Url zusammensetzen. Ansonsten noch einen Tip, besorg dir einen RegEx Tester für deine IDE, solche Tools erleichtern einem echt das Leben ;)
Hier ein wenig Code der aber noch optimiert werden sollte
Code:
import java.util.StringTokenizer;


public class url {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String url = "djskadhsjahdakjdhasd www.test.de/test/source/index.html fdjkfhdsjfhkfjssdfs www.hallo.com/en, fjsdfhdjhfksjfhkksdhfksjfhsdk www.xyz.de/source";
		StringTokenizer st = new StringTokenizer(url, " ");
		while(st.hasMoreTokens()) {
			String name = st.nextToken();
			String uri = st.nextToken();
			String newUrl = name + "<a href=\"" +uri+"\">" + uri + "</a>";
			System.out.println(newUrl);
		}


	}

}
mfg Elmato
 
Zurück