使用一个正则表达式将整个文本拆分为单词

qwaler

我正在寻找问题的解决方案。我需要创建一种方法,该方法为任何给定的文本(包括非英语字母和特殊字符)创建单词列表和仅单词列表我搜索了很多东西,并且在这里阅读文档,但是这些都不适合我。最好的之一是这个:

String line = "    W metal, w liczbę, w trupie ciało, -"
String[] words = line.split("\\P{javaLetter}+");
    for (int i = 0; i < words.length; i++) {
        if (!words[i].equals("")) {  // I don't want to check everytime
            anotherList.add(word[i].toLowerCase())
        }
    }
}

但结果是:

["", "W", "metal", "w", "liczbę", "w", "trupie", "ciało"]

String开头的空格会破坏我的正则表达式。哪种正则表达式是使用拉丁字母以任何语言制作单词的正确正则表达式(不在乎英语单词中的撇号)?

威克多·斯特里比尤(WiktorStribiżew)

您可以使用相反的方法-匹配:

List<String> words = new ArrayList<>();
String line = "    W metal, w liczbę, w trupie ciało, -";
Matcher m = Pattern.compile("\\p{L}+").matcher(line);
while (m.find()) {
    words.add(m.group());
}
System.out.println(words); // => [W, metal, w, liczbę, w, trupie, ciało]

请参阅IDEONE演示\\p{L}+将匹配1+任何Unicode字母。

有一种使用拆分方法的方法,但是我们需要先对输入字符串进行预处理:

String line = "    W metal, w liczbę, w trupie ciało, -";
String[] words = line.replaceFirst("^\\P{L}+", "").split("\\P{L}+");
System.out.println(Arrays.toString(words));

观看另一个IDEONE演示

.replaceFirst("^\\P{L}+", "")将从字符串的开头,从而去除所有非字母符号,留下分割阵列中没有空元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式将一个段落拆分为句子,但跳过前缀标题

来自分类Dev

使用正则表达式从文本中拆分单词

来自分类Dev

正则表达式将一个大的 html 表拆分为多个 5 行的表

来自分类Dev

使用python正则表达式将文本拆分为部分

来自分类Dev

使用正则表达式JAVA将文本拆分为段落

来自分类Dev

使用正则表达式将文本拆分为标记时要保留特殊标记

来自分类Dev

正则表达式 - 在 textcrawler 中选择包含一个单词的整个文件

来自分类Dev

使用正则表达式将一列拆分为多列

来自分类Dev

我可以使用什么正则表达式将字符串拆分为单词,但将短语放在圆括号中在一起?

来自分类Dev

正则表达式复制一个单词并添加额外的文本

来自分类Dev

使用正则表达式匹配另一个单词的排列单词

来自分类Dev

使用正则表达式仅匹配特定单词中的一个单词

来自分类Dev

正则表达式将主题标签拆分为单词

来自分类Dev

使用正则表达式或其他方法将 C# 字符串拆分为 3 个单词块

来自分类Dev

如何使用正则表达式拆分两个粘贴的单词,一个全部大写,另一个以大写字母开头

来自分类Dev

将句子的第一个单词大写(正则表达式,gsub,gregexpr)

来自分类Dev

如何定义一个正则表达式来匹配整个单词“。”。像一封普通的信

来自分类Dev

使用R-正则表达式将POS标记的文本向量/因子拆分为句子

来自分类Dev

正则表达式将WKT(知名文本)解析/拆分为键值对

来自分类Dev

根据文本列的正则表达式模式匹配将表拆分为相关表

来自分类Dev

在Ruby中使用正则表达式提取第一个单词

来自分类Dev

使用一个正则表达式测试多个单词

来自分类Dev

正则表达式:仅在表达式中间拒绝一个单词

来自分类Dev

如何使用正则表达式将此分隔文本拆分为键和值?

来自分类Dev

正则表达式分为3组:第一个单词,最后一个单词和句子的其余部分

来自分类Dev

使用正则表达式排除整个单词

来自分类Dev

正则表达式匹配整个世界或以一个单词开头和/或以另一个单词结尾

来自分类Dev

使用正则表达式拆分单词

来自分类Dev

如何使用给定的正则表达式将字符串拆分为数组

Related 相关文章

  1. 1

    正则表达式将一个段落拆分为句子,但跳过前缀标题

  2. 2

    使用正则表达式从文本中拆分单词

  3. 3

    正则表达式将一个大的 html 表拆分为多个 5 行的表

  4. 4

    使用python正则表达式将文本拆分为部分

  5. 5

    使用正则表达式JAVA将文本拆分为段落

  6. 6

    使用正则表达式将文本拆分为标记时要保留特殊标记

  7. 7

    正则表达式 - 在 textcrawler 中选择包含一个单词的整个文件

  8. 8

    使用正则表达式将一列拆分为多列

  9. 9

    我可以使用什么正则表达式将字符串拆分为单词,但将短语放在圆括号中在一起?

  10. 10

    正则表达式复制一个单词并添加额外的文本

  11. 11

    使用正则表达式匹配另一个单词的排列单词

  12. 12

    使用正则表达式仅匹配特定单词中的一个单词

  13. 13

    正则表达式将主题标签拆分为单词

  14. 14

    使用正则表达式或其他方法将 C# 字符串拆分为 3 个单词块

  15. 15

    如何使用正则表达式拆分两个粘贴的单词,一个全部大写,另一个以大写字母开头

  16. 16

    将句子的第一个单词大写(正则表达式,gsub,gregexpr)

  17. 17

    如何定义一个正则表达式来匹配整个单词“。”。像一封普通的信

  18. 18

    使用R-正则表达式将POS标记的文本向量/因子拆分为句子

  19. 19

    正则表达式将WKT(知名文本)解析/拆分为键值对

  20. 20

    根据文本列的正则表达式模式匹配将表拆分为相关表

  21. 21

    在Ruby中使用正则表达式提取第一个单词

  22. 22

    使用一个正则表达式测试多个单词

  23. 23

    正则表达式:仅在表达式中间拒绝一个单词

  24. 24

    如何使用正则表达式将此分隔文本拆分为键和值?

  25. 25

    正则表达式分为3组:第一个单词,最后一个单词和句子的其余部分

  26. 26

    使用正则表达式排除整个单词

  27. 27

    正则表达式匹配整个世界或以一个单词开头和/或以另一个单词结尾

  28. 28

    使用正则表达式拆分单词

  29. 29

    如何使用给定的正则表达式将字符串拆分为数组

热门标签

归档