Aym*_*ier 1 java regex split words count
我有一本书的一部分,有标点符号,换行符等等.我希望能够从文本中提取前n个单词,并将其分为5个部分.正则表达式使我神秘.这就是我想要的.我创建了一个索引大小为0的数组,包含所有输入文本:
public static String getNumberWords2(String s, int nWords){
String[] m = s.split("([a-zA-Z_0-9]+\b.*?)", (nWords / 5));
return "Part One: \n" + m[1] + "\n\n" +
"Part Two: \n" + m[2] + "\n\n" +
"Part Three: \n" + m[3] + "\n\n" +
"Part Four: \n" + m[4] + "\n\n" +
"Part Five: \n" + m[5];
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我认为最简单,最有效的方法是简单地重复找到一个"单词":
Pattern p = Pattern.compile("(\\w+)");
Matcher m = p.matcher(chapter);
while (m.find()) {
String word = m.group();
...
}
Run Code Online (Sandbox Code Playgroud)
您可以通过修改正则表达式来改变"单词"的定义.我写的只是使用正则表达式的单词字符的概念,我想知道它是否比你想要做的更合适.但它不会包含引号字符,您可能需要在一个单词中允许.