我正在使用java。我想找到然后替换标签<a>
html的超链接和锚文本。我知道我必须使用replace()
方法,但我对正则表达式非常不满意。
一个例子:
<a href="http://example.com">anchor text 1</a>
将替换为:
<a href="http://anotherweb.com">anchor text 2</a>
你能为此目的展示我的正则表达式吗?非常感谢。
答案 0 :(得分: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);
答案 1 :(得分:1)
您可以使用正则表达式replaceAll
:
<a href=\"[^\"]+\">[^<]+</a>
并替换为:
<a href=\"http://anotherweb.com\">anchor text 2</a>
[^\"]+
和[^<]+
被否定了,并且将分别匹配除"
和<
之外的所有字符。