我有一根绳子。
String myStrangeString = "java-1.7, ant-1.6.5, sonar-runner], [java-1.7, ant-1.6.5, sonar-runner], [java-1.7, ant-1.6.5, sonar-runner";
我想从[]
中删除所有的myStrangeString
字符。
我试过了
myStrangeString.replaceAll("[[]]", "")
但是得到了错误
Return Value :Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 3
[[]]
^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.clazz(Pattern.java:2493)
at java.util.regex.Pattern.sequence(Pattern.java:2030)
at java.util.regex.Pattern.expr(Pattern.java:1964)
at java.util.regex.Pattern.compile(Pattern.java:1665)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.replaceAll(String.java:2162)
at Test.main(Test.java:8)
如何将[]
从myStrangeString
中删除?
发布于 2015-01-29 11:39:58
你需要摆脱那些内括号。[
和]
是正则表达式中的特殊元字符,这意味着字符类的开始和结束。因此,要匹配文字[
,]
符号,必须将其转义。
myStrangeString.replaceAll("[\\[\\]]", "")
示例:
String myStrangeString = "java-1.7, ant-1.6.5, sonar-runner], [java-1.7, ant-1.6.5, sonar-runner], [java-1.7, ant-1.6.5, sonar-runner";
System.out.println(myStrangeString.replaceAll("[\\[\\]]", ""));
输出:
java-1.7, ant-1.6.5, sonar-runner, java-1.7, ant-1.6.5, sonar-runner, java-1.7, ant-1.6.5, sonar-runner
发布于 2015-01-29 11:51:46
我想你要找的答案是
myStrangeString.replaceAll("[\\[\\]]", "");
但是如果您的字符串不是很大,而且性能也不是问题,您可以分两步.删除所有,然后删除所有
myStrangeString.replace("[", "");
myStrangeString.replace("]", "");
https://stackoverflow.com/questions/28213829
复制相似问题