我试图用更换一个字符串的“^”字符:替换“^”字符
String text = text.replaceAll("^", "put this text");
如果文本以下值:
"x^my string"
生成的字符串是:
"put this textx^my string"
这只是发生在^
字符的情况下
这是为什么?
我试图用更换一个字符串的“^”字符:替换“^”字符
String text = text.replaceAll("^", "put this text");
如果文本以下值:
"x^my string"
生成的字符串是:
"put this textx^my string"
这只是发生在^
字符的情况下
这是为什么?
的JavaDoc只需使用非正则表达式版本的String.replace()
代替String.replaceAll()
:
text = text.replace("^", "put this text");
如果你不需要正则表达式不要使用replaceAll – rascio
replaceAll
预计将正则表达式作为第一个参数。你需要逃避它:
text = text.replaceAll("\\^", "put this text");
至于为什么,在^
expreg在解析字符串的开头空字符串相匹配。然后,replaceAll
用put this text
替换此空字符串。实际上,它与在原始字符串的开头放置put this text
类似。
^
表示正则表达式中一行的开始。您需要转义它:
String text = text.replaceAll("\\^", "put this text");
^
指示字符串的开始。
^
是一个正则表达式字符,它匹配开始的一个字符串。你需要逃避它喜欢:
text = text.replaceAll("\\^", "put this text");
符号^开始匹配一条线。如果你想匹配caracter ^你必须逃脱它
String text = text.replaceAll("\^", "put this text");
你读过Javadoc吗?你知道正则表达式是什么吗? –
有时候更好地测试这个显而易见的... 对不起主所有威武 – RedEagle
这不像我记得方法的细节 - 我不得不查看它,就像你可以拥有。当他们可能回答那些难以让海报自己回答的问题时,要求其他人为你阅读文档是很烦人的。 –