Java Regex: замена определенного типа URL в строке? - PullRequest
2 голосов
/ 21 августа 2011

Пример ввода:

"http://bits.wikimedia.org/w/extensions-1.17/MobileFrontend/stylesheets/webkit.css"

моя попытка: "http://.*?/stylesheets/webkit.css" не найдено совпадений

Часть URL между "http://" и "webkit.css" является переменной

Спасибо!

Плохо, я использовал функцию Java replace (), а не replaceFirst () или replaceAll ()

1 Ответ

3 голосов
/ 21 августа 2011

Одно решение с использованием групп :

String input = "http://bits.wikimedia.org/w/extensions-1.17/" + 
               "MobileFrontend/stylesheets/webkit.css";

String replacement = "example.com";

String result = input.replaceAll("(http://).*?(/stylesheets/webkit\\.css)",
                "$1" + replacement + "$2");

Результат будет равен http://example.com/stylesheets/webkit.css.


Другой вариант с использованием осмотра :

String result = input.replaceAll("(?<=http://).*(?=/stylesheets/webkit\\.css)",
                                 replacement);

, который говорит "замените все между http:// и /stylesheets/webkit.css на replacement.

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