/ / Substitua “^” char - java, regex, string, caractere

Substitua “^” char - java, regex, string, caractere

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 № 1

Basta 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");