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,“)并不能解决问题。它只在空白处分裂。