如何使用“拆分”拆分java字符串;(“什么;?

如何使用“拆分”拆分java字符串;(“什么;?,java,regex,string,split,Java,Regex,String,Split,我正在尝试拆分一个带有“(”字符的java字符串 例如: 拆分(“wer(sde”)=“wer”+“sde” 但是它给出了一个例外。有没有一种方法可以使用split()函数拆分这个字符串,而不将字符“(”改为其他字符 String[] cp=cmd.split("{"); 输出: 线程“main”java.util.regex.PatternSyntaxException中的异常:非法重复问题是,接收一个正则表达式作为参数。{}和()都是元字符,在正则表达式中有特殊含义,因此需要像这样对它们进

我正在尝试拆分一个带有“(”字符的java字符串

例如:

拆分(“wer(sde”)=“wer”+“sde”

但是它给出了一个例外。有没有一种方法可以使用split()函数拆分这个字符串,而不将字符“(”改为其他字符

String[] cp=cmd.split("{");
输出: 线程“main”java.util.regex.PatternSyntaxException中的异常:非法重复

问题是,接收一个正则表达式作为参数。
{}
()
都是元字符,在正则表达式中有特殊含义,因此需要像这样对它们进行转义:

String[] cp = cmd.split("\\(|\\)");
String
接受
String
的方法,该参数为正则表达式:

由于
是正则表达式中的保留字符,因此需要对其进行转义
\(

但是在Java中,需要两次转义
\\(
),一次转义
字符串,第二次转义正则表达式

这使得:

s.split("\\(");

括号在正则表达式中表示某种含义,它们用于将字符分组在一起。因此,如果要引用文字字符,
'('
必须在正则表达式中对其进行转义:

String[] cp = cmd.split("\\(");

请注意使用两个反斜杠。这是因为JVM也会将反斜杠解释为元字符以进行转义,因此必须用另一个反斜杠转义反斜杠本身,以便将其放入正则表达式中。

用\\字符/表达式转义,在正则表达式中具有特定含义必须是escape被解释为字符。split(\\(“”;@Basi编译错误,
\(
不是有效的Java字符,需要第二次转义
\(
split([()”)
),因为您想在
-在
[]
内部,它们失去了特殊的意义
String[] cp = cmd.split("\\(");