2016-10-06 3 views
1

Я прошел через пару примеров, чтобы заменить данную подстроку из заданной строки "", но не смог добиться результата. Строка слишком долго, чтобы получить возможность отправлять и содержит подстроку, которая заключается в следующем: -Как заменить заданную подстроку на «" из заданной строки?

/image/journal/article?img_id=24810&t=1475128689597 

Я хочу, чтобы заменить эту подстроку с «» .Здесь Значение img_id и t может меняться, так Я должен был бы использовать регулярное выражение. Я пробовал использовать следующий код: -

String regex="^/image/journal/article?img_id=([0-9])*&t=([0-9])*$"; 
content=content.replace(regex,""); 

Здесь содержимое является исходной данной строкой. Но этот код на самом деле не заменяет ничего из content. Поэтому, пожалуйста, помогите ... любая помощь была бы оценена .thanx заранее.

+0

1. Вам, вероятно, не нужно регулярное выражение. 2. 'replace()' не принимает регулярное выражение в качестве ввода – TheLostMind

+0

Вы можете попробовать использовать метод '.replaceAll' ... Но я рекомендую вам использовать класс Pattern для компиляции вашего регулярного выражения и вызывать методы класса для обработки ваших выражений. –

+0

Мне нужно regex..please указать, как его использовать. –

ответ

2

replaceAll Использование работ в приятном способе с регулярным выражением

content=content.replaceAll("[0-9]*",""); 

Код

String content="/image/journal/article?img_id=24810&t=1475128689597"; 
content=content.replaceAll("[0-9]*",""); 
System.out.println(content); 

Выход:

/image/journal/article?img_id=&t= 

Update: просто, может быть немного меньше, но уютный легко один

String content="sas/image/journal/article?img_id=24810&t=1475128689597"; 
    content=content.replaceAll("\\/image.*",""); 
    System.out.println(content); 

Выход:

sas 

Если есть что-то еще после t=1475128689597/?tag=343sdds и вы хотите сохранить ?tag=343sdds используйте ниже

String content="sas/image/journal/article?img_id=24810&t=1475128689597/?tag=343sdds"; 
    content=content.replaceAll("(\\/image.*[0-9]+[\\/])",""); 
    System.out.println(content); 
    } 

Выход:

sas?tag=343sdds 
+2

OP хочет удалить все изображение '/ image ...'подстрока из большей строки, которую он не опубликовал, а не только переменные части. –

+0

@MarkoTopolnik oops Я думал что-то еще, позвольте мне отредактировать мой ответ. Спасибо приятель –

0

Если вы пытаетесь заменить подстроку URL с двумя предложениями, как так:

/image/journal/article?img_id=""&t=""

Затем вам нужно добавить кавычки экранированы \"\" внутри вашего назначения контента, изменить регулярное выражение только смотреть для чисел, и изменить его на replaceAll:

content=content.replaceAll(regex,"\"\""); 
0

Вы можете использовать Java regex Utility заменить строку с "" или (любой желаемой строкой литерально) на основе данного рисунка (регулярного выражения) следующим образом:

String content = "ALPHA_/image/journal/article?img_id=24810&t=1475128689597_BRAVO"; 
String regex = "\\/image\\/journal\\/article\\?img_id=\\d+&t=\\d+"; 
Pattern pattern = Pattern.compile(regex); 

Matcher matcher = pattern.matcher(content); 
if (matcher.find()) { 
    String replacement = matcher.replaceAll("PK"); 
    System.out.println(replacement); // Will print ALPHA_PK_BRAVO 
}