Groovy/Java在括号上拆分字符串"("

Kyl*_*ler 24 java groovy escaping pattern-matching

我正在尝试执行类似以下的拆分:

println "Hello World(1)".split("W");
Run Code Online (Sandbox Code Playgroud)

输出:

[Hello , orld(1)]
Run Code Online (Sandbox Code Playgroud)

我想执行这个分裂:

println "Hello World(1)".split("(");
Run Code Online (Sandbox Code Playgroud)

但我明白了:

Caught: java.util.regex.PatternSyntaxException: Unclosed group near index 1 (
Run Code Online (Sandbox Code Playgroud)

有没有办法逃脱这个括号?任何帮助表示赞赏.

Mem*_*ori 54

println "Hello World(1)".split("\\(");
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 19

split方法采用正则表达式模式.

如果你想拆分"只是一个常规字符串",你可以先用它Pattern.quote来引用字符串:

println "Hello World(1)".split(Pattern.quote("("))
Run Code Online (Sandbox Code Playgroud)