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