Я пытаюсь сделать некоторый материал с заменой Строки, содержащей некоторый URL к браузеру совместимый связанный URL.
Моя начальная строка похожа на это:
"hello, i'm some text with an url like http://www.the-url.com/ and I need to have an hypertext link !"
То, что я хочу получить, является Строковым сходством с:
"hello, i'm some text with an url like <a href="http://www.the-url.com/">http://www.the-url.com/</a> and I need to have an hypertext link !"
Я могу поймать URL с этой строкой кода:
String withUrlString = myString.replaceAll(".*://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"null\">HereWasAnURL</a>");
Возможно, для regexp выражения нужно некоторое исправление, но оно хорошо работает, потребность протестировать в дальнейшее время.
Таким образом, вопрос состоит в том, как сохранить выражение пойманным regexp и просто добавить, какой необходим для создания ссылки: пойманная строка
Заранее спасибо за Ваш интерес и ответы!
Попробуйте использовать:
myString.replaceAll("(.*://[^<>[:space:]]+[[:alnum:]/])", "<a href=\"$1\">HereWasAnURL</a>");
Я не проверял ваше регулярное выражение.
Используя ()
, вы можете создавать группы. $ 1
указывает индекс группы.
$ 1
заменит URL.
Я задал вопрос simalir: мой вопрос
Некоторые примеры: Захват текста в группе в регулярном выражении
Предполагая, что ваше регулярное выражение работает для сбора правильной информации, вы можете использовать обратные ссылки в своей замене. См. Учебник по Java regexp .
В этом случае вы должны сделать
myString.replaceAll(....., "<a href=\"\1\">\1</a>")