如果一个分隔符跟随另一个分隔符,则使用分隔符拆分字符串并检索空格

时间:2013-11-26 11:17:16

标签: regex split

如果这是重复,我很抱歉 - 但我找不到任何相关问题。 (也许我只是找不到适合这类问题的搜索表达式)

想一想 Java 中的以下字符串:

"test:test2+test3++test4:test5+test6"

正如您所看到的,分隔符为:+

使用Apache StringUtils.split(string, "[:+]")方法可以很好地进行拆分,但问题是如果出现++,则返回的StringArray不包含空格,表示存在未使用的值

这意味着我需要以下输出:

 "test"  
 "test2"  
 "test3"  
 " " <-- whitespace!  
 "test4"  
 "test5"  
 "test6" 

++也可以出现在字符串的开头或结尾。 有没有办法用正则表达式解决这个问题?

2 个答案:

答案 0 :(得分:0)

这是你需要的吗?

 String s = "test:test2+test3++test4:test5++test6";
String[] s1 = s.replaceAll ("[:+]{1}", " ").split (" ");

for(int i = 0;i<s1.length;i++){
    System.out.println (s1[i]);
}

输出:

 test
 test2
 test3

 test4
 test5

 test6

答案 1 :(得分:0)

这应该适合你:

String string = "test:test2+test3++test4:test5+test6";
string.replaceAll("([:+]){2,}", "$1 $1").split("[:+]")

<强>输出:

  1. 测试
  2. TEST2
  3. TEST3
  4. “”
  5. TEST4
  6. TEST5
  7. TEST6
  8. 请参阅带有空格的标记#4(我添加了引号来演示)。