У меня есть загадка, требующая вашей помощи: мне нужно заменить некоторые слова ссылками в тексте HTML.
For example, I have to replace "word" with "<a href="...">word</ a>"
Сложность двойная:
- 1.не добавлять ссылки в атрибуты тега
- 2.не добавлять ссылки другие ссылки (вложенные ссылки).
Я нашел решение для случая (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>
Проблема: есть ссылка в другой ссылке.
У вас есть идея, какрешить эту проблему?
Заранее спасибо