Заменить символ "^" - PullRequest
       26

Заменить символ "^"

2 голосов
/ 12 июля 2011

Я пытаюсь заменить символ «^» в строке, используя:

String text = text.replaceAll("^", "put this text");

Если текст в качестве следующего значения:

"x^my string"

Полученная строка:1007 *

"put this textx^my string"

Это происходит только в случае символа ^

Почему это так?

Ответы [ 6 ]

9 голосов
/ 12 июля 2011

Просто используйте версию без регулярных выражений String.replace() вместо String.replaceAll():

text = text.replace("^", "put this text");
5 голосов
/ 12 июля 2011

replaceAll ожидает регулярное выражение в качестве первого параметра. Вам нужно избежать этого:

text = text.replaceAll("\\^", "put this text");

Что касается причины, то выражение ^ соответствует пустым строкам в начале проанализированной строки. Затем replaceAll заменяет эту пустую строку на put this text. Что, в сущности, похоже на put this text в начале вашей исходной строки.

1 голос
/ 12 июля 2011

^ обозначает начало строки в регулярном выражении.Вам нужно избежать этого:

String text = text.replaceAll("\\^", "put this text");
0 голосов
/ 12 июля 2011

Символ ^ соответствует началу строки. Если вы хотите соответствовать символу ^, вы должны убежать от него

String text = text.replaceAll("\^", "put this text");
0 голосов
/ 12 июля 2011

^ - это символ регулярного выражения, который соответствует началу строки.Вам необходимо экранировать его следующим образом:

text = text.replaceAll("\\^", "put this text");

Подробная информация о JavaDoc java.util.regex.Pattern

0 голосов
/ 12 июля 2011

^ указывает начало строки.

...