我有一個HTML內容的形式String
。字符串中有很多超鏈接。我怎樣才能刪除字符串中的第一個鏈接?請指導我。如何在java中刪除字符串中第一次出現的子字符串?
String html = "abcdef<a href=some dynamic url>link1</a>ghijkl<a href=some url>link2</a>mnopq<a href=some url>link3</a>";
我想從上面的字符串中刪除「link1」以及引用url。
我有一個HTML內容的形式String
。字符串中有很多超鏈接。我怎樣才能刪除字符串中的第一個鏈接?請指導我。如何在java中刪除字符串中第一次出現的子字符串?
String html = "abcdef<a href=some dynamic url>link1</a>ghijkl<a href=some url>link2</a>mnopq<a href=some url>link3</a>";
我想從上面的字符串中刪除「link1」以及引用url。
我會做類似
String matchATag="<a[^>]*>([^<]+)</a>";
html=html.replaceFirst(matchATag,"");
您可以嘗試用正則表達式的鏈接元素匹配,但是這是一個recipe for problems.
你最好的HTML解析器像NekoHTML,找到的第一個鏈接,然後將其取下。
對於html處理,我會建議jsoup(http://jsoup.org/)。您也可以在這個庫中指定替換行爲。
您可以使用正則表達式。例如:
html.replaceFirst("<a[^>]+>[^>]+</a>", "");
使用[HTML parser](http://nekohtml.sourceforge.net/)。 – Maroun
如果問題是'首次發生'部分 - [replaceFirst](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceFirst(java.lang.String, %20java.lang.String))。但是,請向我們展示解決問題的嘗試。 – Dukeling
閱讀本文http://stackoverflow.com/a/1732454/892914 – jnovacho