2014-11-08 42 views
0

请告诉我如何使用正则表达式来分隔单词。 让我们假设有串如何使正则表达式将行分为单词

String s = "I have dog, cat, gold  fishes. My cat eats :  milk, fish, etc.." 

我需要基于该字符串,看起来像

String[] words = s.split(regexp) 

[我,有,狗,猫,黄金,鱼,我,猫,吃String数组,牛奶,鱼等]

因此正则表达式必须忽略空格和标点符号(句点,逗号,,,?!)

+2

这是一个非常简单的任务,如果你了解正则表达式的基础教程,你会找到答案在两分钟内。建议:使用find方法更容易。 – 2014-11-08 16:50:55

回答

1

这应该工作:

String[] words = s.split("[\\s,.:]+"); 

要包括所有的标点符号,使用\p{Punct}

String[] words = s.split("[\\s\\p{Punct}]+"); 
+0

你不需要(也不应该)在字符类中转义'.'。 '“[\\ s,。:] +”'就够了。 – Pshemo 2014-11-08 17:32:31

+0

@Pshemo我错过了它。谢谢你的提示。 – manouti 2014-11-08 21:14:09