簡體   English   中英

替換字符串中的所有`[]`字符

[英]Replace All `[ ]` character from the string

我有一個琴弦。

 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刪除[]

您需要轉義那些內括號。 []是regex中的特殊元字符,表示字符類的開始和結束。 因此,要匹配文字[]符號,您必須對此進行轉義。

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

我認為您正在尋找的答案是

myStrangeString.replaceAll("[\\[\\]]", "");

但是,如果您的字符串不大且性能不是問題,則可以分兩個步驟進行操作...刪除所有[然后刪除所有]

 myStrangeString.replace("[", "");
 myStrangeString.replace("]", "");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM