我的第一个要求是使用Java中的正则表达式从某些文本中提取所有单词。
以下代码对我来说非常完美
String[] words = text.split("[^\\w']+");
它还删除除撇号(')之外的所有标点符号和特殊字符
'
我的下一个任务是 提取具有多个(例如)3字符的单词,重要的是,我想在上述正则表达式中执行此操作。
3
您可能会想出一些其他的正则表达式来完成这两项任务。
有趣的事实 。A word是语音或写作的一个独特元素,形成一个句子,通常在两边都带有空格。\w匹配(任何letter,number或underscore)
word
\w
letter
number
underscore
不清楚您要问的是什么,而没有更好地解释您要完成的任务。
如果要包含一个单词匹配letters和撇号'有 更多 比3字符..
letters
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字符的单词,如果您还想匹配包含3(foo)或更多字符的单词,则可以使用以下内容。
foo
Pattern p = Pattern.compile("[a-zA-Z']{3,}");