gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:50:52 26 4
gpt4 key购买 nike

这里有很多关于 String.split() 和正则表达式的问题,但似乎没有一个与我的困境有关......

我有以下内容:

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() )我只想有文字,但我确实需要包括@和 # 如果它们附加到 token 。

最佳答案

"baseball, and"

分成

"baseball"
""
"and"

因为 ", " 是两个分隔符。您的 + 量词只允许运行一种定界符。如果您想拆分不同分隔符的运行,请将 + 放在整个事物而不是部分周围:

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

关于java - 为什么我的带有 split() 的正则表达式在单个标点符号后留下空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21397586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com