gpt4 book ai didi

java - 如何在wordcount hadoop中用逗号、空格、句点(.)、制表符(\t)、括号()、方括号[]和大括号({})字符分隔单词?

转载 作者:行者123 更新时间:2023-12-02 03:13:20 30 4
gpt4 key购买 nike

我正在使用 Cloudera turotial 练习 MapReduce here 。然而,目前本教程仅使用 Java 中的正则表达式按空格分割单词:

private static final Pattern WORD_BOUNDARY = Pattern.compile("\\s*\\b\\s*");

但是,除了空间"\\s*" ,我还想通过逗号、句点(.) 和制表符(\t)、圆括号()、方括号[] 和大括号({}) 字符来定义单独的单词。换句话说,我将单词定义为一个字符串,该字符串具有一个或多个字母数字字符,并由两个非字母数字字符界定。例如:

  • (cece54) 有一个单词“cece54”,边界为 ()
  • {dwd] 有一个单词“dwd”,边界为 {]
  • xxx) 有一个单词“xxx”,受 <space> 约束和)
  • 诸如此类。

那么我的正则表达式应该如何编写才能满足此要求?

最佳答案

如果将单词定义为一个或多个连续的字母数字字符,则拆分为一个或多个连续的非字母数字字符,即 "\\P{Alnum}+""[^a-zA-Z0-9]+".

参见regex101例如。

您可以为第一个添加前缀 (?U) ,即 "(?U)\\P{Alnum}+",以获得完整的国际 unicode 支持。

关于java - 如何在wordcount hadoop中用逗号、空格、句点(.)、制表符(\t)、括号()、方括号[]和大括号({})字符分隔单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732732/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com