Eu estou tentando substituir o caractere "^" em um String usando:
String text = text.replaceAll("^", "put this text");
Se o texto como o seguinte valor:
"x^my string"
A string resultante é:
"put this textx^my string"
Isso só acontece no caso do ^
personagem
Por que é isso?
Respostas:
9 para resposta № 1Basta usar a versão não-regex String.replace()
ao invés de String.replaceAll()
:
text = text.replace("^", "put this text");
5 para resposta № 2
replaceAll
espera um regexp como primeiro parâmetro. Você precisa escapar:
text = text.replaceAll("\^", "put this text");
Quanto ao porquê, o ^
expreg corresponde a strings vazias no início da string analisada. Então, replaceAll
substitui esta string vazia por put this text
. Que, na verdade, é semelhante a colocar put this text
no início da sua string original.
1 para resposta № 3
^
denota o começo de uma linha em uma expressão regular. Você precisa escapar:
String text = text.replaceAll("\^", "put this text");
0 para a resposta № 4
^
indica o começo da string.
0 para a resposta № 5
^
é um caractere de expressão regular que corresponde ao começar de uma string. Você precisa escapar assim:
text = text.replaceAll("\^", "put this text");
Detalhes estão no JavaDoc de java.util.regex.Pattern
0 para a resposta № 6
O símbolo ^ corresponde ao início de uma linha. Se você quer combinar com o caracter ^ você tem que escapar dele
String text = text.replaceAll("^", "put this text");