java - 从字符串中删除所有非单词字符

标签 java regex string

我想从字符串中删除所有非单词字符,但想保留空格。 示例:

    String a = "Graeme O'Connor Dasha Nicholls  Claire N MacDermott1 • Julia K Catherine Bryant1 Josèô Gil2";
    String b = a.replaceAll("[^\\p{L}]+", " ");
    System.out.println("replaced: " + b);

预期输出:

Graeme O'Connor Claire N MacDermott Julia K Catherine Bryant Josèô Gil

但是我得到了

Graeme O Connor Claire N MacDermott Julia K Catherine Bryant Josèô Gil

最佳答案

替换非单词和非空格和非'字符,然后将多个空格压缩为一个:

String b = a.replaceAll("[^[\\p{L}\\s']]+", "").replaceAll("\\s+", " ");

输出:

replaced: Graeme O'Connor Dasha Nicholls Claire N MacDermott Julia K Catherine Bryant Josèô Gil

关于java - 从字符串中删除所有非单词字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50587251/

相关文章:

java - 修改ArrayList的元素

java - Netty 不使用 for 循环向服务器发送消息

java - 计算二维数组中相邻元素的程序给出不一致的结果

python - 如何通过正则表达式获得最正确的匹配?

c++ - 将字符串放入控制台,具有编辑能力

PHP - 智能、容错的字符串比较

java - 如何调整输入图像的大小

java.util.regex.PatternSyntaxException : Unclosed character class for\d*

regex - 在Scala中的两个字符串之间提取字符串

Python 将字符串拆分/切片到列表中,同时保留分隔符