小编典典

从长度超过N个字符的文本中提取单词-RegExp / Java / Android

java

我的第一个要求是使用Java中的正则表达式从某些文本中提取所有单词。

以下代码对我来说非常完美

String[] words = text.split("[^\\w']+");

它还删除除撇号(')之外的所有标点符号和特殊字符

我的下一个任务是 提取具有多个(例如)3字符的单词,重要的是,我想在上述正则表达式中执行此操作。

您可能会想出一些其他的正则表达式来完成这两项任务。


阅读 280

收藏
2020-11-30

共1个答案

小编典典

有趣的事实 。A
word是语音或写作的一个独特元素,形成一个句子,通常在两边都带有空格。\w匹配(任何letternumberunderscore

不清楚您要问的是什么,而没有更好地解释您要完成的任务。

如果要包含一个单词匹配letters和撇号'更多3字符..

List<String> words = new ArrayList<String>();
String s  = "I want to have alot of money's when I am older.";
Pattern p = Pattern.compile("[a-zA-Z']{4,}");
Matcher m = p.matcher(s);
while (m.find()) {
  words.add(m.group());
}
System.out.println(words);

// [want, have, alot, money's, when, older]

注意 :这匹配包含多个3字符的单词,如果您还想匹配包含3foo)或更多字符的单词,则可以使用以下内容。

Pattern p = Pattern.compile("[a-zA-Z']{3,}");
2020-11-30