Java:regex split()基于2个分隔符

Java:regex split()基于2个分隔符,java,regex,string,split,Java,Regex,String,Split,当空格后跟逗号时,我想拆分字符串 我的输入字符串: go back, to work ! ,2012-10-01 07:01:45,, 1 预期产出: "go back, to work !" "2012-10-01 07:01:45,,1" 我试过的代码: String[] b1=a1.split("[\\s,]"); 但这仅基于空格分割字符串。当同时有空格和逗号时,我想将其拆分,而不仅仅是其中一个。我该怎么办?在空格上拆分,后跟逗号: String[] b1 = a1.sp

当空格后跟逗号时,我想拆分字符串

我的输入字符串:

go back, to work !  ,2012-10-01 07:01:45,,  1
预期产出:

"go back, to work !"    
"2012-10-01 07:01:45,,1"
我试过的代码:

String[] b1=a1.split("[\\s,]");

但这仅基于空格分割字符串。当同时有空格和逗号时,我想将其拆分,而不仅仅是其中一个。我该怎么办?

空格上拆分,后跟逗号:

String[] b1 = a1.split("\\s,");

[\\s,]
是一个字符类,它将在空格或逗号上拆分。

使用
(“\\s”)
在空格上拆分,后跟逗号,将不会为您提供所需的

"go back, to work !"

"2012-10-01 07:01:45"

1
输出将是

go back, to work !

2012-10-01 07:01:45,, 1
您可以使用逗号后跟空格,或者使用
“\\s,|,\\s”
使用空格后跟逗号,然后您将得到下面的输出

go back

to work !

2012-10-01 07:01:45,

1

但是它仍然和你想要的不一样。您可能需要澄清您的要求。

当出现空白时,使用此命令拆分字符串,然后出现逗号

String[] b1 = a1.split(" ,");

您的字符串结尾还包含
、1
,并且它似乎没有显示在预期的输出中,但是您没有提到它应该被“清理”@alfasin:是的,输出应该只有两个部分。我已经编辑了这篇文章。你的方括号定义了一个字符类,表示该类中的任何一个字符,而不是字符序列
空格逗号
。我修复了预期输出的修复。从口头描述来看,第二个字符串应该包括
,.1
,它们不应该在引用的字符串之外。OP没有明确要求,但他确实声明请求的输出应该将
2012-10-01 07:01:45,,1
分为两个字符串:
2012-10-01 07:01:45
1
。我担心很难找到一个完全符合他要求的正则表达式(这也意味着在这种情况下,正则表达式可能不是合适的工具)。我不想根据空格或逗号来拆分它。当空格后跟逗号时,我想将其拆分。是的,这是我的答案,即
拆分空格后跟逗号
。@anubhava:对不起,但它只拆分空格。@Keerthuppen否,此正则表达式有效。确保你真的用了他的正则表达式。我已经编辑了我的帖子。我希望输出只有两部分。但是(\\s,“)并不能解决问题。它只在空白处分裂。