Java 为什么我的带有split()的正则表达式在单个标点后留下空格?
关于String.split()和regex,这里有很多问题,但它们似乎都与我的困境无关 我有以下资料: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 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,那里,这就是我现在拥有的。