Java: замена всех URL-адресов тегами привязки, которых еще нет в тегах привязки - PullRequest
1 голос
/ 29 июня 2010

Я пытаюсь заменить все не-якорные теги, содержащиеся в анкерных тегах, для документа.Итак, учитывая строку:

I have two urls for google: <a href="http://www.google.com/">google</a> and http://www.google.com/

Я хотел бы заменить ее на это:

I have two urls for google: <a href="http://www.google.com/">google</a> and <a href="http://www.google.com/">http://www.google.com/</a>

Кто-нибудь знает чистый способ сделать это в Java?

1 Ответ

1 голос
/ 11 июля 2011

Это может помочь вам начать (это работает для данного примера):

public class test {
    public static void main(String[] args) {
        final String test = "I have two urls for google: <a href=\"http://www.google.com/\">google</a> and http://www.google.com/";
        System.out.println(test.replaceAll("(?<!\\<a\\ href=\")http:\\/\\/[^ ]*",
                                           "<a href=\"$0\"/>"));
    }
}

Есть некоторые проблемы с ним:

  • Это не учитывает пробелы втеги "a", за исключением одного пробела между открывающими "a" и "href"
  • Предполагается, что URL равен "http://", за которым следует ноль или более символов, не равных пробелу (" ")

Это будет работать для простых примеров, я не уверен, как вы напишете полное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...