2011-10-01 29 views
0

我需要帮助才能理解正则表达式。出于某种原因,我在这里阅读了很多关于sof的教程和许多问题,并且无法理解它。我想使用String.split函数,如下所示:Java string.split - by multiple character delimiter。但我无法理解这一部分:Java Regex了解

String[] parts = input.split("[,\\s\\-:\\?]"); 

让supose我想和这个以下分隔符的分裂。“”(空格)“” (完全停止),“,”(昏迷),“!”,“»”,“«”等。我怎样才能得到这与正则表达式?我想知道这里的这些字符是什么:(“[,\ s \ - :\?]”)。什么是“\ s”,它为什么需要。

+1

我推荐这个网站来测试你的正则表达式:[RegExr(http://gskinner.com/RegExr/)。它也提供了模式本身的解释。 – Hamed

回答

2

\s是“任何单个空白字符”。所以它代表一个空格,换行符,标签或其他类似的东西。该正则表达式实际上可以更紧凑在这种情况下写

注:

String[] parts = input.split("[,\\s:?-]"); 

?并不需要进行转义时内[]-不要么,如果这是最后的事情。 )

有关字符类的更多详细信息,请参阅http://www.regular-expressions.info/charclass.html