Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使用正则表达式拆分字符串_Java_Regex_Split - Fatal编程技术网

在java中使用正则表达式拆分字符串

在java中使用正则表达式拆分字符串,java,regex,split,Java,Regex,Split,我想在java中拆分一个带空格的字符串。我知道下面的代码行可以做到这一点 String s[] = str.split("\\\s+"); 这里,split函数接受必须拆分字符串的正则表达式。因此,当我想通过一个或多个空格拆分字符串str时,我应该将\s+作为正则表达式传递,那么为什么要使用\\\s+呢?这将进行拆分 String s[] = n.split("\\s+"); 您不需要第三个斜杠“\”-您会得到编译错误。 第一个“\”是为了逃避第二个“\”。用作“\s”的转义字符。如伊斯梅尔

我想在java中拆分一个带空格的字符串。我知道下面的代码行可以做到这一点

String s[] = str.split("\\\s+");

这里,split函数接受必须拆分字符串的正则表达式。因此,当我想通过一个或多个空格拆分字符串
str
时,我应该将
\s+
作为正则表达式传递,那么为什么要使用
\\\s+
呢?

这将进行拆分

String s[] = n.split("\\s+");
您不需要第三个斜杠“\”-您会得到编译错误。

第一个“\”是为了逃避第二个“\”。用作“\s”的转义字符。

如伊斯梅尔所说,不需要第三个反斜杠。 在正则表达式中,您希望使用
\s
,因此在Java中,您还需要避免标记的反斜杠

解决方案:

三重反斜杠不能在java中编译。在java中,正确的正则表达式是
\\s+
,因为需要1个反斜杠来转义第二个正则表达式。您需要使用双反斜杠。反斜杠在Java中是一种特殊符号,必须使用转义字符。对于反斜杠,转义字符为双反斜杠