2013-10-14 70 views
0

我正在使用java。我想找到然後替換超鏈接和錨文本的標籤<a> html。我知道我必須使用:replace()方法,但我對正則表達式很不好。 一個例子:使用正則表達式替換鏈接標記

<a href="http://anotherweb.com">anchor text 2</a> 

你能證明我的這一目的的正則表達式:

<a href="http://example.com">anchor text 1</a> 

將被替代?非常感謝。

+2

不要使用正則表達式,使用'HTML' [parser](http://stackoverflow.com/questions/2168610/which-html-parser-is-best)。 – Maroun

+0

它是您想要替換的特定鏈接和文本,還是您想要將所有鏈接和所有文本替換爲「http:// anotherweb.com」和「錨文本2」? – Jerry

+0

我想要替換文本中的所有鏈接和所有文本。 –

回答

1

也許你可以使用一個replaceAll與正則表達式:

<a href=\"[^\"]+\">[^<]+</a> 

並將其替換:

<a href=\"http://anotherweb.com\">anchor text 2</a> 

[^\"]+[^<]+被否定階級並且將分別匹配除"<以外的所有字符。

2

不要對此任務使用正則表達式。你應該使用一些HTML解析器像Jsoup

String str = "<a href='http://example.com'>anchor text 1</a>"; 

Document doc = Jsoup.parse(str); 
str = doc.select("a[href]").attr("href", "http://anotherweb.com").first().toString(); 

System.out.println(str); 
+0

我會盡力的。謝謝 –