尝试在java中出现double $$ charter时拆分字符串

rav*_*avz 2 java regex string android split

我需要将此字符串拆分为此字符串的任何$$:

String tmpHash = "NA$notValid-1$notValid-2##notValid-3##$$VALID-1##$$VALID-2##$notvalid-4$$VALID-3";
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

String[] arr=tmpHash.split("$$");

        for (int i = 0; i < arr.length; i++) {
            System.out.println("OUTPUT--> "+arr[i]);    

        }
Run Code Online (Sandbox Code Playgroud)

输出是

OUTPUT--> NA$notValid-1$notValid-2##notValid-3##$$VALID-1##$$VALID-2##$notvalid-4$$VALID-3
Run Code Online (Sandbox Code Playgroud)

期望的输出

OUTPUT-->NA$notValid-1$notValid-2##notValid-3##
OUTPUT-->VALID-1##
OUTPUT-->VALID-2##$notvalid-4
OUTPUT-->VALID-3
Run Code Online (Sandbox Code Playgroud)

Ant*_*onH 5

你必须逃离$标志.

String[] arr=tmpHash.split("\\$\\$");
Run Code Online (Sandbox Code Playgroud)

或者使用(根据这个答案来回答类似的问题)

String myString = "$$";
String escapedString = java.util.regex.Pattern.quote(myString)
Run Code Online (Sandbox Code Playgroud)

自动转义所有特殊字符的正则表达式给定的字符串中.

  • @ravz所以你似乎不接受这个答案然后...... (2认同)