java - 在 Java 中删除标点符号前的空格

标签 java regex string

我有一个字符串

"This is a big sentence .  !  ?  !  but I have to remove the space ."   

在这句话中,我想删除标点符号之前的所有空格,应该变成

"This is a big sentence.!?!  but I have to remove the space."   

我正在尝试使用 "\p{Punct}" 但无法替换为字符串。

最佳答案

你应该使用 positive lookahead :

newStr = str.replaceAll("\\s+(?=\\p{Punct})", "")

ideone.com demo for your particular string

表达式分解:

  • \s:空白...
  • (?=\\p{Punct}) ... 后面是标点符号。

关于java - 在 Java 中删除标点符号前的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928273/

相关文章:

java - 使用 Apache Commons HttpClient 上传 SmbFile

java - 如何动态创建并实例化 POJO 类?

ruby-on-rails - 给定一个带句号的输入,如何让所有内容都跟在它后面?

python - 在文本文件中使用正则表达式重新格式化日期时间值

javascript - Jquery HTML 方法

java - 如何用 xml 包装(包围)java 匹配器组?

java - 在 Rest Web 方法中传递 JSON 对象

单个空格的正则表达式

c - 使用指针数组输出通过随机片段配置的句子

c++ - 在 C++ 类中定义静态字符串变量