Java如何在一段时间后加点

时间:2017-06-07 18:46:17

标签: java regex

我有一段文字。我想要做的是,在整个文本中我想在所有句点之后放一个空格,如果它还没有出现的话。如果它已经存在我不想要两个空格。

此外,如果文本包含多个连续的句点,我想仅在最后一个句点之后放置一个空格,并且仅在空格不存在的情况下也是如此。

我试过用这个:

.replaceAll("[.!?;]", "$0 ").replaceAll("\\s+", " ")

但这对于多个点来说是失败的

感谢。

2 个答案:

答案 0 :(得分:1)

如果不存在,可以使用此正则表达式在点后面放置一个空格:

str = str.replaceAll("\\.(?![.\\s])", "$0 ");

RegEx Demo

(?![.\\s])是一个负向前瞻,如果下一个位置有空格或点字符,它将断言为假。

答案 1 :(得分:0)

关于的部分,除非空格已经存在是一个没有实际意义的点 通常,对于最快的解决方案,使用模式吸收所有数据,
盲目地替换它。

https://regex101.com/r/aPa0Bk/1

全球范围内,
查找(?:\s+|(\.+))\s*
替换'$1 '

这是为了修剪空白。