Подтвердить что ты не робот

Как заменить символ плюса с помощью метода Java String.replaceAll

Какое правильное регулярное выражение для символа плюса (+) в качестве первого аргумента (т.е. заменяемой строки) методу Java replaceAll в классе String? Я не могу правильно получить синтаксис.

4b9b3361

Ответ 1

Вам нужно избежать + для регулярного выражения, используя \.

Однако Java использует параметр String для построения регулярных выражений, который использует \ для собственных escape-последовательностей. Поэтому вам нужно избежать самого \:

"\\+"

Ответ 2

если у вас есть сомнения, пусть java выполнит вашу работу:

myStr.replaceAll(Pattern.quote("+"), replaceStr);

Ответ 3

Вам нужно будет избежать + с a \, а потому, что\является специальным символом в строках Java, вам нужно будет сбежать от него с помощью другого \.

Итак, ваша строка регулярного выражения будет определена как "\\ +" в Java-коде.

т.е. этот пример:

String test = "ABCD+EFGH";
test = test.replaceAll("\\+", "-");
System.out.println(test);

Ответ 4

Если вам нужна простая строка find-and-replace (т.е. вам не нужно регулярное выражение), может быть проще использовать StringUtils из Apache Commons, который позволит вам написать:

mystr = StringUtils.replace(mystr, "+", "plus");

Ответ 5

Другие уже заявили правильный метод:

  • Выход из + в качестве \\+
  • Использование метода Pattern.quote, который избегает всех метасимволов регулярных выражений.

Другой способ, который вы можете использовать, - поместить + в класс символов. Многие метасимволы регулярных выражений (., *, + среди многих других) обрабатываются буквально в классе символов.

Так вы также можете сделать:

orgStr.replaceAll("[+]",replaceStr);

Идеальная ссылка

Ответ 6

Предположим, что вы хотите заменить - на \\\-, используйте:

 text.replaceAll("-", "\\\\\\\\-");

Ответ 7

String str="Hello+Hello";   
str=str.replaceAll("\\+","-");
System.out.println(str);

ИЛИ

String str="Hello+Hello";   
str=str.replace(Pattern.quote(str),"_");
System.out.println(str);

Ответ 8

Как насчет замены нескольких '+ неопределенным количеством повторений?

Пример: тест + тест + тест + 1234

(+) или [+], кажется, выбирают один буквенный символ, но повторяется.