Java 替换“\&引用;加上&引用;在爪哇
我的问题很简单: 如何将“\”替换为“?” 我试过这个:Java 替换“\&引用;加上&引用;在爪哇,java,regex,string,Java,Regex,String,我的问题很简单: 如何将“\”替换为“?” 我试过这个: str.replaceAll("\\", ""); 但我有一个例外 08-04 01:14:50.146: I/LOG(7091): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1: 你应该试试这个: str.replaceAll("\\\\", ""); \必须在regex中转义=>您应该在字
str.replaceAll("\\", "");
但我有一个例外
08-04 01:14:50.146: I/LOG(7091): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1:
你应该试试这个:
str.replaceAll("\\\\", "");
\
必须在regex中转义=>您应该在字符串转义之后编写\
,并且每个\
必须在java=>中转义,这就是为什么我们在字符串转义之后有4个\
\
是\
,这也是regex try中的转义字符
String newStr = str.replaceAll("\\\\", "");
(不要忘记指定结果)
此外,如果在需要正则表达式的地方使用某些字符串作为输入,则使用以下字符串更安全:
如果不使用replaceAll
(需要一个正则表达式)来进行此操作,则更简单-只需使用replace
(需要一个普通字符串)。除非确实需要正则表达式,否则不要使用正则表达式形式。这只会让事情变得更复杂
不要忘记,仅仅调用replace
或replaceAll
是毫无意义的,因为字符串是不可变的-您需要使用返回结果:
String replaced = str.replace("\\", "");
虽然我认为你是正确的,但你应该解释一下为什么也要这样做。java escape\和regex需要escape\so 2X2=4:)我喜欢这样一个事实,即你可以从更大的角度来看。可能的重复
String replaced = str.replace("\\", "");