2014-10-17 2 views
2

Я пытаюсь удалить все после последней косой черты в моем URL-адресе. Я написал некоторый REGEX, который работает в тестерах тестирования Java REGEX 10, но, к сожалению, не в моем локальном коде. Любое понимание того, почему это может быть, было бы весьма полезно. Прямо сейчас мой шаблон REGEX, целевая строка и желаемый результат следующие.Замените все после последней косой черты

Regular Expression: "[^/]*$" 
Target String: /example/c/coffee101 
Desired Output: /example/c/cafè999 

минималистичным код Java:

target = "/example/c/coffee101"; 
replace = "cafè999"; 
target.replaceFirst("[^/]*$", replace); 

Спасибо очень!

ответ

2

Вам необходимо присвоить возвращаемое значение replaceFirst метода target как ни метода в String классе изменяет сам объект типа String:

target = target.replaceFirst("[^/]*$", replace); 
+1

Один из нас нужно, чтобы выйти из регулярных выражений тега на ночь;) шучу, есть мой upvote (я собираюсь в отпуске через час в любом случае!). – Sam

+0

lol :) так верно, я тоже выхожу через несколько минут. – anubhava

+1

Большое вам спасибо. Я так сильно попал на REGEX, что не упускаю из виду действительную функцию. – user1615559

0

Кажется, как будто .replaceFirst() возвращает модифицированный string..try:

target = target.replaceFirst("[^/]*$", replace); 

Возвращает

Строка строится заменой первого соответствия подпоследовательности строкой замены, подставляя захватили подпоследовательности в случае необходимости

+1

Большое вам спасибо. Попытайтесь понять, почему REGEX может быть неправильным, и забыть, чтобы действительно думать о самой функции. – user1615559

Смежные вопросы