在句号后添加 space

Add space after full stops

python 中进行此简单文本修复的简洁方法是什么 - 检查是否每个句号(最后一个句号除外)后跟 space。假设点后没有空 space 是我们在输入字符串中唯一可能出现的错误。

我正在这样做:

def textFix(text):
    result = re.sub('\.(?!\s)', '. ', text)
    if (result[len(result) - 1]) == ' ':
        return result[:-1]
    return result

您可以用

查看
\.(?!\s|$)

regex demo。它匹配后面没有空格或字符串末尾的点,即后面没有空格的任何非最终点。

或者,您也可以考虑

\.(?=\S)

匹配任何后跟非空白字符的点。

another demo

Python demo:

import re
rx = r"\.(?=\S)"
s = "Text1. Text2.Text3."
result = re.sub(rx, ". ", s)
print(result)
# => "Text1. Text2. Text3."

你的技术看起来很完美。但也包括检查以避免在最后一个点 (.)

后添加 space
\.(?!\s)(?!$)

其中 (?!$) 有助于确保如果 . 后跟字符串结尾 $ 则不匹配,因此不会在其后添加 space。

Regex 101 demo