Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 为什么我的带有split()的正则表达式在单个标点后留下空格?_Java_Regex_Split - Fatal编程技术网

Java 为什么我的带有split()的正则表达式在单个标点后留下空格?

Java 为什么我的带有split()的正则表达式在单个标点后留下空格?,java,regex,split,Java,Regex,Split,关于String.split()和regex,这里有很多问题,但它们似乎都与我的困境无关 我有以下资料: string a = "@USER_78b1ff36 just a hunch............ You two seem to know your baseball, and may have been teammates before...."; splitTweet = tweets[i].split("\\.+|\\s+|\\*+|\\,+|\\!+|\"|\\-|

关于String.split()和regex,这里有很多问题,但它们似乎都与我的困境无关

我有以下资料:

string a = "@USER_78b1ff36 just a hunch............     You 
two seem to know your baseball, and may have been teammates before....";

splitTweet = tweets[i].split("\\.+|\\s+|\\*+|\\,+|\\!+|\"|\\-|/|\\:");
printArray(splitTweet); //prints line by line the index followed by value
输出:

0: @USER_78b1ff36
1: just
2: a
3: hunch
4: 
5: You
6: two
7: seem
8: to
9: know
10: your
11: baseball
12: 
13: and
14: may
15: have
16: been
17: teammates
18: before
我得到了这些空格,但它们只出现在单个标点符号实例中,空格按预期被打断,多个标点符号实例按预期被打断

我的表达式有什么问题吗?(我肯定有很多问题,这是我第一次尝试使用split())我只希望有单词,但如果它们附加到标记上,我确实需要包含@和#

"baseball, and"
分成

"baseball"
""
"and"
因为“
”,“
是两个分隔符。您的
+
量词只允许运行一种分隔符。如果要在不同分隔符的运行中进行拆分,请将
+
放在整个运行中,而不是部分:

a.split("(\\.|\\s|\\*|\\,|\\!|\"|\\-|/|\\:)+");
分成

"baseball"
""
"and"
因为“
”,“
是两个分隔符。您的
+
量词只允许运行一种分隔符。如果要在不同分隔符的运行中进行拆分,请将
+
放在整个运行中,而不是部分:

a.split("(\\.|\\s|\\*|\\,|\\!|\"|\\-|/|\\:)+");

您是否尝试了
\\s+
而不是
\\s
?抱歉,我在中复制了一个较旧版本的表达式,只需一秒钟。@devnull,那里,这就是我当前拥有的。您是否尝试了
\\s+
而不是
\\s
?抱歉,我在中复制了一个较旧版本的表达式,只需一秒钟。@devnull,那里,这就是我现在拥有的。