如何替换超链接中的某些文本



这是在Android上,需要在加载到WebView之前修复html。

通常可以通过

完成
(<a[^>]+>)(.+?)(</a>) 

获取group $1,然后替换文本。

如果在标签中有其他未知的子元素怎么办?下面的例子有

…Text

,但是

可能是其他未知的东西。

它真正想要的只是替换元素中任何子元素的text元素的内容。

<a href="http://news.newsletter.com/" target="_blank">
  <p><img alt=“Socialbook" border="0" height="50" 
  src="http://news.newsletter.com/images/socialbook.gif" width="62">
  THIS IS THE TEXT NEEDED TO REPLACE<p>
</a>

这可以在JAVA内完成还是必须在WebView的javascript内完成?

您可以使用任何Java html解析器。例如JSoup:

String html = "<html><head><title>First parse</title></head>"
    + "<body><a href="..."><p>Parsed HTML into a doc.</p></a></body></html>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
for (Element link : links)
    link.text("~" + link.text() + "~");

最新更新