Какое правильное регулярное выражение для символа плюса (+) в качестве первого аргумента (т.е. заменяемой строки) методу Java replaceAll
в классе String? Я не могу правильно получить синтаксис.
Как заменить символ плюса с помощью метода Java String.replaceAll
Ответ 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
(+) или [+], кажется, выбирают один буквенный символ, но повторяется.