java - 使用正则表达式将句子拆分为单词,其中单词还包含多个空格

标签 java regex

通过使用正则表达式让句子包含多个空格我尝试实现以下目标:

句子示例:这是一个简单的文本。

预期结果:[这个,     是一个简单的文本。]

实际结果:[这是一个简单的文本。]

ArrayList<String> tokens = new ArrayList<>();
Pattern tokSplitter = Pattern.compile("[a-zA-Z.*//s*]+");
Matcher m = tokSplitter.matcher("This     is a simple text.");
    while (m.find()) {
            tokens.add(m.group());
    }
    System.out.println(tokens);

最佳答案

你可以这样写:

public static void main(String[] args) {
    ArrayList<String> tokens = new ArrayList<>();
    Pattern tokSplitter = Pattern.compile("(\\s*[a-zA-Z.]+)\\s?");
    Matcher m = tokSplitter.matcher("This     is a simple text.");
    while (m.find()) {
        tokens.add(m.group(1));
    }
    System.out.println(tokens);
}

输出:[这是一个简单的文本。]

关于java - 使用正则表达式将句子拆分为单词,其中单词还包含多个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60954169/

相关文章:

java - 单元格的权重向右而不是向左

regex - 排除以_OK结尾的单词的正则表达式

python - 正则表达式:如何在域或 IP 地址之前省略字符串 + 空格?

python - 如何在python中匹配空格和字母数字字符

c# - 正则表达式同时向前看和向后看

java - 如何使用 google-truth 测试是否抛出了预期的异常?

java - setfill() 和 setw() Java 等效?

java - 文本查询匹配(棘手)

java - 来自 Map<String, List<String>> 的速度表

java - 什么是哈希碰撞