正则表达式,只需要在逗号上拆分

时间:2013-04-16 17:16:53

标签: java regex groovy

这里测试代码。我想扩充我目前的正则表达式以分割逗号

String test = "This Is ,A Test"
println(test)
String noSpace = test.replaceAll("\\s","")
println(noSpace)
String[] words = noSpace.split("[^a-zA-Z0-9'-.]+")

words.each {
   println(it)
}

这会产生输出

This Is ,A Test
ThisIs,ATest
ThisIs,ATest

我希望它产生输出

This Is ,A Test
ThisIs,ATest
ThisIs
ATest

有什么想法?谢谢!

2 个答案:

答案 0 :(得分:2)

要根据逗号进行拆分,只需使用

即可
String[] words = noSpace.split(",");

答案 1 :(得分:2)

来自javadoc

  

请注意,字符类中的一组不同的元字符在字符类外部生效。例如,正则表达式。在字符类中失去其特殊含义,而表达式 - 成为形成元字符的范围。

所以你需要逃离破折号:

String[] words = noSpace.split("[^a-zA-Z0-9'\\-.]+");