我有一个需要你帮助的谜题:我需要用HTML文本中的链接替换某些单词。
For example, I have to replace "word" with "<a href="...">word</ a>"
困难是双重的:
我找到了满足案例(1)的解决方案,但我无法处理案例(2)。
这是我的简化代码:
String text="sample text <a>sample text</a> sample <a href='http://www.sample.com'>a good sample</a>";
String wordToReplace="sample";
String pattern="\\b"+wordToReplace+"\\b(?![^<>]*+>)"; //the last part is here to solve de problem (1)
String link="["+wordToReplace+"]"; //for more clarity, the generated link is replaced by [...]
System.out.println(text.replaceAll(pattern,link));
结果是:
[sample] text <a>[sample] text</a> [sample] <a href='http://www.sample.com'>a good [sample]</a>
问题:另一个链接中有一个链接。
你知道如何解决这个问题吗?
提前谢谢
答案 0 :(得分:1)
使用正则表达式解析HTML总是一个坏主意,正是因为像这样的奇怪案例。最好使用HTML解析器。 Java有一个带有using Swing的内置HTML解析器,您可能需要查看它。