Java正则表达式匹配任意单词

5

我正在尝试找出用于将文章拆分为不带标点符号的单词的正则表达式。我尝试通过空格进行拆分,但这会导致一些仍带有标点符号的单词。我还尝试了按单词字符拆分,但由于某种原因返回了一系列空字符串的数组:

String[] words = line.split("\\w+");

我读到了,因为我想匹配单词,所以我想使用一个或多个单词字符([a-zA-Z0-9])。一旦遇到非单词字符,它就不会再匹配了,所以我认为这是我需要的正则表达式。我不明白我选择这个正则表达式的推理有什么问题。 - HukeLau_DABA
在@SotiriosDelimanolis'链接的正则表达式构造中,寻找单词边界\b。然后请删除此帖子。这个问题的答案在互联网上随处可见,包括SO。 - Paul Sasik
可能是Java正则表达式单词匹配的重复问题。 - Paul Sasik
你还应该阅读 split 的 javadoc。 - Sotirios Delimanolis
如果我使用单词字符,就不需要单词边界。 - HukeLau_DABA
显示剩余2条评论
1个回答

4

试试这个

String[] words = line.split("\\W+");

2
有趣。我在脑海里知道\W,想先用\s+,然后感到困惑,搞砸了split的定义,使用了\w+,并没有意识到要使用相反的东西。 - HukeLau_DABA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接